1. 
uses  Winapi.ShellAPI;
---------------------------------------------------------------------
ShellExecute(0, 'open', PChar(sURL), '', '', SW_NORMAL);
  • 참고
  {$EXTERNALSYM SW_HIDE}
  SW_HIDE = 0;
  {$EXTERNALSYM SW_SHOWNORMAL}
  SW_SHOWNORMAL = 1;
  {$EXTERNALSYM SW_NORMAL}
  SW_NORMAL = 1;
  {$EXTERNALSYM SW_SHOWMINIMIZED}
  SW_SHOWMINIMIZED = 2;
  {$EXTERNALSYM SW_SHOWMAXIMIZED}
  SW_SHOWMAXIMIZED = 3;
  {$EXTERNALSYM SW_MAXIMIZE}
  SW_MAXIMIZE = 3;
  {$EXTERNALSYM SW_SHOWNOACTIVATE}
  SW_SHOWNOACTIVATE = 4;
  {$EXTERNALSYM SW_SHOW}
  SW_SHOW = 5;
  {$EXTERNALSYM SW_MINIMIZE}
  SW_MINIMIZE = 6;
  {$EXTERNALSYM SW_SHOWMINNOACTIVE}
  SW_SHOWMINNOACTIVE = 7;
  {$EXTERNALSYM SW_SHOWNA}
  SW_SHOWNA = 8;
  {$EXTERNALSYM SW_RESTORE}
  SW_RESTORE = 9;
  {$EXTERNALSYM SW_SHOWDEFAULT}
  SW_SHOWDEFAULT = 10;
  {$EXTERNALSYM SW_FORCEMINIMIZE}
  SW_FORCEMINIMIZE = 11;
  {$EXTERNALSYM SW_MAX}
  SW_MAX = 11;

2.
uses  
  System.Win.ComObj
  , System.Variants
  ;
---------------------------------------------------------------------
var
  IE : Variant;
---------------------------------------------------------------------
IE := CreateOleObject('InternetExplorer.Application');
try
  IE.Visible := True;
  IE.Navigate(sURL);
finally
  IE := Unassigned;
end;


배열의 선언

var

   A : array[0..5] of integer;

 

오브젝트 파스칼의 경우 c에서처럼 항상 0부터 시작하지 않는 경우도 있다.

 

예)

  A : array[28..30] of integer;

 

위와 같은 경우 루프나 index 참조시 조심해야 하는데 이때는 배열의 상한과 하한을 알려주는

Low(), High()를 사용하면 된다.

예)

  for i := Low(A) to High(A) do

       //todo

  end;

 

이차원 배열(다차원 배열)

  var

    A : array[1..2, 1..2] of integer

 

동적 배열

오브젝트 파스칼에서의 동적 배열

  선언

  var 

    A : array of string

  메모리 할당

  SetLength(A, 33);

  사용

  A[0] := 'Object Pascal';

  동적배열은 항상 0부터 시작된다.

 

메모리 해제

  A := nil;

 

동적 배열은 일반 배열과 달리 AnsiString에서 사용하는 참조 기법을 사용한다.

따라서 값 복사 시 유의해야 한다.

예)

 var

  A1, A2 : array of integer;

 begin

  SetLength(A1, 100);

  A2 := A1;

  A1[0] := 50;

  A2[0] := 3;

이 경우 A1의 값이 3으로 바뀐다.

이런 경우가 발생하지 않게 하려면 Copy 명령을 사용해야 한다.

 

이차원 동적 배열 할당

AA : array of array of integer;

원본링크 : http://blog.naver.com/PostView.nhn?blogId=skyofdus&logNo=30027965521


Time <- 1000 : 1초
 
procedure delay(Time: Integer);
var
  PastCount: LongInt;
begin
  PastCount := GetTickCount;
  repeat
    Application.ProcessMessages;
  until ((GetTickCount-PastCount) >= LongInt(Time));
end;
 

 

+ Recent posts