문장 및 연산자

DelphiScript 문

DelphiScript에서 문은 다른 문이 포함되어 있지 않을 때 '단순'한 문으로 간주됩니다. 단순문의 예로는 할당문과 프로시저 호출이 있습니다.

Simple statements:

X := Y + 10; // assignment

ShowMessage('Hello World!'); // procedure call

복합 문은 여러 문으로 구성됩니다.

Compound statements:

Begin
  If A > B Then ShowMessage('A is bigger');
  Else ShowMessage('B is bigger');
  A := 0;
  B := 0;
End;

델파이스크립트에서 변수에 값을 할당할 때는 콜론-등호 연산자를 사용합니다: :=

동일성 여부를 검사할 때는 등호 연산자를 사용합니다: =

조건문

DelphiScript에는 스크립트 내의 실행 흐름에 영향을 미치는 제어 문이 있습니다. 가장 일반적인 제어 문은 If..Then 조건문입니다.

If Then 문

If Then If..Then 문은 조건부 제어에 사용됩니다. 구문은 다음과 같습니다:

If Condition Then
  Begin
  // code here
  End
Else
  Begin
  // code here
  End;

Case Of 문

복잡한 일련의 If 문들을 피하기 위해, 이를 종종 Case 문으로 대체할 수 있습니다. 식 내의 Case 문은 값 하나, 가능한 값의 목록, 또는 값의 범위를 선택하는 데 사용됩니다.

DelphiScript는 유형이 지정되지 않은 언어이므로 Case 문에서는 어떤 유형이든 사용할 수 있습니다. Case 문에는 (Case Of 조건 내에서) 선택자의 값과 일치하는 레이블이 없을 경우 실행되는 Else 문이 포함될 수 있습니다.

Example 1:

Case Char of
  '+' : Text := 'Plus sign';
  '-' : Text := 'Minus sign';
  '*', '/': Text := 'Multiplication or division';
  '0'..'9': Text := 'Number';
  'a'..'z': Text := 'Lowercase character';
  'A'..'Z': Text := 'Uppercase character';
else
  Text := 'Unknown character';
End;

Example 2:

Case UserName of
  'Jack', 'Joe' : IsAdministrator := true;
  'Fred' : IsAdministrator := false;
else
  Raise('Unknown User');
End;

With 문

With With 문은 DelphiScript의 약식 표기법입니다. 레코드형 변수(또는 객체)를 참조할 때, 매번 이름을 반복하는 대신 'with' 문을 사용할 수 있습니다.

Normal version:

Form.Canvas.Pen.Width := 2;
Form.Canvas.Pen.Color := clSilver;

Version using With:

With Form.Canvas.Pen do
Begin
  Width := 2;
  Color := clSilver;
End;

For-To-Do 루프

For For..To..Do 문은 코드 블록(하나 이상의 코드 줄)을 반복적으로 순회하는 방법을 제공합니다. 기본 구문은 다음과 같습니다:

For counter := start To end Do
Begin
  // code here
End;

For 루프는 종종 배열을 초기화하는 데 사용됩니다. 루프의 For..To..Do 반복 방향은 DownTo 키워드를 번갈아 사용하여 루프를 감소시킴으로써 제어할 수 있습니다. DelphiScript는 루프를 For..To..Do 조기 종료할 수 있는 Break/Exit 문을 제공합니다.

Repeat Until 루프

Repeat 문은 부울 표현식이 참이 될 때까지 반복적으로 실행됩니다. 이 Repeat 문은 항상 적어도 한 번은 실행됩니다.

Example:

Repeat
  Write('Enter a value (0..9): ');
  ShowMessage(IntToStr(I));
Until (I >= 0) and (I = 9);

While Do 루프

A While 문은 Repeat 문과 유사하지만, 제어 조건이 문 시퀀스의 첫 번째 실행 전에 평가된다는 점이 다릅니다. 따라서 조건이 거짓인 경우, 문 시퀀스는 절대 실행되지 않습니다.

Example:

Randomize;
I := 0;
While I  1000 do
Begin
  I := I + Random (100);
  Add ('Random Number: ' + IntToStr (I));
End;

Continue 문

Continue Continue 문은 Goto 문과 유사하게 루프 본문을 건너뜁니다. continue 문은 실행 중인 스크립트가 현재 루프의 다음 반복으로 넘어가게 합니다 For, While 또는 Repeat 루프의 다음 반복으로 넘어가게 합니다.

Example:

var
  F: File;
  i: Integer;
Begin
  For i := 0 to (FileListBox1.Items.Count - 1) do
  Begin
    Try
    If FileListBox1.Selected[i] Then
    Begin
      If not FileExists(FileListBox1.Items.Strings[i]) then
      Begin
        MessageDlg('File: ' + FileListBox1.Items.Strings[i] + 'not found', mtError, [mbOk], 0);
        Continue;
      End;
      AssignFile(F, FileListBox1.Items.Strings[i]);
      Reset(F, 1);
      ListBox1.Items.Add(IntToStr(FileSize(F)));
      CloseFile(F);
    End;
    Finally
      { do something here }
    End;
  End;
End;

Goto 레이블 문

Goto 문은 다음과 같은 형식을 갖습니다. Goto label 로, 스크립트 실행을 지정된 레이블로 표시된 문으로 이동시킵니다. 문에 레이블을 지정하려면 먼저 레이블을 선언한 다음, 타겟 문 앞에 레이블과 콜론을 붙여 표기해야 합니다: label: statement

라벨은 유효한 식별자라면 무엇이든 사용할 수 있습니다. 라벨 선언과 Goto 문은 스크립트 내의 동일한 코드 블록에 속해야 합니다. 따라서 프로시저나 함수 안으로 점프하거나 그 밖으로 점프하는 것은 불가능합니다.

Example:

Label StartHere;
  // code
StartHere: Beep;
Goto StartHere;

Exit 문

Exit 문은 함수나 프로시저에서 즉시 반환합니다. 만약 Exit 블록 내부에서 Try..Finally 내부에서 호출하면, Finally 해당 부분이 서브루틴이 반환되기 전에 먼저 실행됩니다. 만약 Exit 프로시저가 스크립트의 본문 내에서 호출되는 경우, 스크립트의 실행이 종료됩니다.

Example:

Begin
  Server := SchServer;
  If Server = Nil Then
  Begin
    ShowError('No SchServer started');
    Exit;
End;

Break 문

Break 문은 실행 중인 스크립트가 현재 For, While 또는 Repeat 루프에서 종료되도록 합니다. 스크립트 실행은 현재 루프 다음의 실행 가능한 줄부터 계속됩니다.

Example:

Var
  S: string;
Begin
  While True do
  Begin
    ReadLn(S);
    Try
      if S = '' then Break;
      WriteLn(S);
    Finally
      { do something for all cases }
    End;
  End;
End;

DelphiScript 표현식 연산자

일반적으로 식은 상수, 변수, 리터럴 값, 연산자 및 함수 결과의 유효한 조합입니다. 식은 변수에 할당할 값을 결정하거나, 함수의 파라미터를 계산하거나, 조건을 검사하는 데 사용됩니다. 식에는 함수 호출이 포함될 수 있습니다.

DelphiScript에는 여러 가지 Logical 연산자, 산술 연산자, 부울 연산자 및 관계 연산자가 있습니다. 이러한 연산자들은 우선순위 순서(아래 참조)에 따라 그룹화되어 있으며, 이는 Basic, C 등에서 사용하는 우선순위 순서와 다릅니다. 예를 들어, ANDOR 연산자는 관계 연산자보다 우선순위가 높습니다.

만약 a를 작성하면, DelphiScript는 AND 연산을 먼저 수행하여 오류가 발생합니다. 이러한 문제를 방지하고 우선순위를 명확히 정의하려면 각 식마다 괄호로 묶어야 합니다: (a;

아래에 나열된 지원되는 DelphiScript 연산자는 우선순위 순서대로 표시되어 있습니다.

우선순위별로 분류된 연산자

단항 연산자가 가장 높은 우선순위를 갖는다는 점에 유의하십시오.

Not

부울 또는 비트별 NOT.

Multiplicative and Bitwise Operators

*

산술 곱셈.

/

부동 소수점 나눗셈.

div

정수 나눗셈.

mod

모듈로(정수 나눗셈의 나머지).

and

부울 또는 비트 단위 AND.

shl

비트 단위 왼쪽 시프트.

shr

비트 단위 우측 시프트.

Additive Operators

+

산술 덧셈, 문자열 연결.

-

산술 뺄셈.

or

부울 또는 비트별 OR

xor

부울 OR 또는 비트별 배타적 OR.

Relational and Comparison Operators (lowest precedence)

=

동일한지 여부를 테스트합니다.

>

불일치 여부를 확인합니다.

보다 작은지 여부를 확인합니다.

>

보다 큰지 여부를 확인합니다.

=

작거나 같는지 여부를 확인합니다.

>=

‘보다 크거나 같음’인지 여부를 확인합니다.

또한 ^@ 연산자는 DelphiScript에서 지원되지 않는다는 점에 유의하십시오.

AI-LocalizedAI로 번역됨
만약 문제가 있으시다면, 텍스트/이미지를 선택하신 상태에서 Ctrl + Enter를 누르셔서 저희에게 피드백을 보내주세요.
기능 가용성

사용할 수 있는 기능은 보유한 Altium 솔루션(Altium Develop, Altium Agile Teams, Altium Agile Enterprise, 또는 Altium Designer(활성 기간 중))에 따라 달라집니다.

실제 소프트웨어에서 문서화된 기능이 보이지 않는 경우, Altium 영업팀에 문의하여 자세한 내용을 확인하세요.

구버전 문서

Altium Designer 문서는 더 이상 버전별로 제공되지 않습니다. 이전 버전의 Altium Designer 문서가 필요하신 경우, Other Installers 페이지의 Legacy Documentation 섹션을 방문해 주세요.

콘텐츠