키워드

 

이 참조 문서는 Altium Designer의 스크립팅 시스템에서 사용되는 DelphiScript 키워드를 다룹니다. 스크립팅 시스템은 Embarcadero Delphi™ 프로그래밍 언어와 매우 유사한 DelphiScript 언어를 지원합니다. 핵심적인 차이점은 DelphiScript가 타입이 없는(typeless) 스크립팅 언어라는 점입니다.

DelphiScript와 Delphi 프로그래밍 언어의 차이점에 대한 더 자세한 내용은 Differences between DelphiScript and Delphi 페이지를 참조하십시오.

이 섹션에서는 자주 사용되는 DelphiScript 키워드를 자세한 설명과 예제와 함께 정리합니다. Delphi 파일, 수학, 문자열 처리 루틴 등 더 많은 키워드 정보는 FunctionsEmbarcadero Delphi Reference를 참고하십시오.

And

Declaration
And 연산자는 논리/비트 단위 AND를 수행합니다.

Description
And 연산자는 피연산자가 boolean 타입이면 논리 AND를, 피연산자가 정수이면 비트 단위 AND를 수행합니다.

Example of a boolean And evaluation:

Var
  I, J : Integer
Begin
  I := $F0;
  J := $8F;
  ShowMessage(IntToStr(I and J));
End;

Example of a logical And evaluation:

Var
  S : String;
Begin
  S := '';
  If (Length(S) > 0) and (S[1\] = 'X') Then Delete(S,1,1);
End;

See also
Or 키워드
Xor 키워드

Array

Declaration
Array [index range];

Description
DelphiScript 언어는 타입이 없는 언어이므로 배열의 크기 또는 범위를 지정해야 합니다. 배열이 담을 수 있는 요소의 타입은 정의할 수도 있지만 필수는 아닙니다. Open array 선언은 지원되지 않습니다.

Example:

var x : array [1..2]; 

Begin

Declaration
Begin
  statement
End;

Description
begin 키워드는 스크립트에서 블록을 시작합니다. 블록은 스크립트의 본문이며 임의 개수의 문장을 포함할 수 있고, 조건문이나 반복문 본문처럼 단일 문장이 필요한 곳이라면 어디에서든 사용할 수 있습니다.

Example:

Var
  Test : Integer;
Begin
  Test := Test + 4;
  ShowMessage(IntToStr(Test));
End;

See also
End 키워드

Break

Declaration
Break;

Description
BreakGoto 문과 유사하게 루프를 빠져나갑니다.

Example:

While Condition Do
Begin
  DoSomething;
  Begin
    If AnotherCondition Then
      Break;
  End;
End;

See also
While 키워드
Continue 키워드
Do 키워드
Repeat 키워드

Case

Declaration
Case expression Of
  Value range : Expression;
Else Expression;
End;

Description
Case 문은 표현식 값에 따라 가능한 여러 분기 중 하나를 선택합니다.

많은 경우 복잡한 If 문 집합은 Case 문으로 대체하여 단순화할 수 있습니다. 표현식에서의 case 문은 하나의 값, 가능한 값 목록, 또는 값의 범위를 선택하는 데 사용됩니다. DelphiScript는 비정형(untyped) 언어이므로 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;

See also
Of 키워드

Continue

Declaration
Continue

Description
Continue 문은 Goto 문과 유사하게 루프 본문을 건너뜁니다;

Example:

Var
  I := 0; s:= 1;
Begin
  While True Do
  Begin
  S := S \* 2;
  I := I \\+ 1;
  If I <> 4 then continue;
  Break;
End;

See also
Break 키워드
While 키워드
Continue 키워드
Do 키워드
Repeat 키워드

Const

Declaration
Const
Name = Expression;

Description
Const 키워드는 상수의 값으로 어떤 상수 값 표현식이든 지정합니다. 스크립트에서 const 타입의 표현식을 수정하려고 하면, 스크립팅 시스템이 undeclared identifier 오류를 발생시킵니다.

Example:

Const
  b = 30;
Begin
  ShowMessage(IntTtStr(b));
End;

b const 매개변수의 값을 변경하려고 하면 오류가 발생합니다. 예:

Const
  b = 30;
Begin
  b := 40;
  ShowMessage(IntToStr(b));
End;

Div

Declaration
dividend div divisor

Description
Div 연산자는 정수 나눗셈을 수행하며, 반올림 없이 소수 결과를 버립니다. 나누는 수가 0이면 DelphiScript는 오류를 보고합니다.

See also
Mod 연산자
Div 연산자

Do

Declaration

  • For variable := expression1 to expression2 do
  • While expression do
  • With expression do 문.

Description
Do 키워드는 DelphiScript의 For, While and With 문 일부입니다.

Example:

For i := 0 To AnIndex - 1 Do
  S := S + #13 + AString;

See also
For 키워드
To 키워드
While 키워드
With 키워드
DownTo 키워드

DownTo

Declaration
For variable := expression1 DownTo expression2 Do statement.

Description
For 루프에서 DownTo를 사용하면 카운트를 감소시키며 반복할 수 있습니다.

See also
For 키워드
To 키워드
Do 키워드

Else

Declaration

  • If condition then statement Else statement
  • Try statement except exception Else statement end
  • Case expression of Else end;

Description
Else 키워드는 여러 문장에서 “그 외의 모든 경우(catch all)” 부분을 도입합니다. if 문의 else 부분은 단일 문장이 뒤따르지만, try-exceptcase 문의 else 부분은 여러 문장을 포함할 수 있습니다.

See also
If 키워드
Then 키워드
Try 키워드
Case 키워드

End

Declaration

  • Begin statements End;
  • Try statements Except Exception clauses... else Statements... End;
  • Try statements Finally statements End;
  • Case Expression of clauses Else statements... End;

Description
End 키워드는 블록 또는 선언, Case 문 등과 같은 다중 파트(multiple part)를 종료합니다.

See also
Begin 키워드
Case 키워드
Try 키워드

Except

Declaration
Try statements Except statements End;

Description
Try-Except 블록은 예외 상황을 처리하는 데 사용합니다. 예를 들어 특정 예외를 잡아 오류 로그에 추가하거나 사용자 친화적인 대화상자를 만드는 등 유용한 처리를 할 수 있습니다. DelphiScript에서는 On 키워드가 지원되지 않으므로, Except 블록 안에서 Raise 문을 사용하고 텍스트 메시지만 보고하십시오.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

See also
End 키워드
Finally 키워드
Try 키워드

Finally

Declaration
Try statements... Finally statements... End;

Description
finally 키워드는 try-finally 블록의 finally 부분을 시작합니다. finally 블록의 문장은 제어가 try 블록을 어떤 방식으로 벗어나든(예외, exit, break) 항상 실행됩니다. 객체의 생성/소멸 및 파일 IO를 다룰 때는 try-finally 블록 사용을 권장합니다.

See also
End 키워드
Raise 키워드
Try 키워드

For

Declaration

  • for variable := expression1 to expression2 do statement
  • for variable := expression1 downto expression2 do statement

Description
for 루프는 먼저 이 루프의 한계를 지정하는 표현식을 평가한 다음, 루프 제어 변수를 통해 루프 본문을 반복 실행하며, 제어 변수는 각 반복 후 갱신됩니다.

Example:

For i := 0 to AnIndex - 1 Do
Begin
  S := S + #13 + AString;
End;
ShowMessage(S);

See also
Do 키워드
DownTo 키워드
Repeat 키워드
To 키워드
While 키워드
With 키워드

Forward

Declaration
subroutine header; forward;

Description
Forward 지시어(directive)는 forward 지시어로 헤더(이름, 매개변수, 반환 타입)를 선언함으로써, 함수나 프로시저가 호출되기 전에 미리 선언할 수 있게 합니다.

Function

Declaration
Function name (parameters) : return type;

Description
Function은 값을 반환하는 서브루틴입니다. 스크립트에서는 함수 포인터가 허용되지 않으며(즉, 함수 타입을 정의할 수 없음), 함수 내부에서 선언된 변수는 이 프로시저 밖에서 접근할 수 없습니다.

Example

Function TestFunc(Min, Max : integer) : integer;
Begin
  Result := Random(Max - Min +1);
End;

Goto

Declaration
goto label

Description
goto 문은 지정된 레이블로 제어를 이동합니다. 레이블은 어떤 식별자든 될 수 있으며, 최대 4자리 숫자 문자열도 가능합니다.

Example

Label StartHere;
// code
 
StartHere: //do anything;
 
Goto StartHere;

See also
Label 키워드

If

Declaration

  • if condition then statement;
  • if condition then statement1 else statement2;

Description
If 키워드의 조건은 boolean 표현식이어야 합니다. Else 키워드는 선택 사항입니다.

Example

If A > B Then
    ShowMessage('X>Y and A > B');
Else
    ShowMessage('X>Y and A <=B');
End;

See also
And 키워드
Begin 키워드
Or 키워드
Then 키워드
Else 키워드

Interface

Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;

Description
interface 키워드는 메모리에 존재하는 기존 객체에 접근하고 해당 객체의 메서드를 호출할 수 있게 합니다. 인터페이스는 속성과 메서드로만 구성될 수 있으며 데이터는 포함할 수 없습니다. 인터페이스는 데이터를 포함할 수 없으므로, 속성은 메서드를 통해 쓰기/읽기를 수행해야 합니다. 가장 중요한 점은 인터페이스에는 구현이 없고, 메모리에 존재하는 객체에 대한 계약(contract)만 정의한다는 것입니다.

인터페이스는 컴퓨터 메모리에 존재하는 객체에 대한 접점(contact point)으로 생각할 수 있으며, 인터페이스의 속성을 통해 데이터를 읽고/쓸 수 있는 기능을 제공합니다. 인터페이스는 연결된 객체에 데이터를 요청합니다.

DelphiScript는 타입이 없는 언어이므로, 새로운 레코드, 배열, 클래스 같은 새 타입과 그에 연관된 인터페이스도 정의할 수 없습니다.

Interface 키워드의 또 다른 용도(Embarcadero Delphi 유닛의 Interface/Implementation 섹션)를 주의하십시오. 이러한 Interface/Implementation 키워드는 스크립트에서 사용할 수는 있지만, Altium Designer에서 스크립트가 실행될 때는 사실상 무시됩니다.

Label

Declaration
label digits, identifier, ...;

Description
label 키워드는 하나 이상의 레이블을 선언합니다. 레이블은 최대 4자리 숫자 문자열 또는 식별자일 수 있습니다. 레이블은 같은 블록 내에서 문장을 식별하여 goto 문의 대상으로 사용할 수 있습니다.

Example:

Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;

See also
Goto 키워드

Mod

Declaration
Integer expression mod integer expression

Description
mod 연산자는 정수 모듈러스(나머지) 연산을 수행합니다. A mod B의 결과는 A - (A div B) * B입니다.

See also
Div 함수

Nil

Declaration
const nil = pointer(0);

Description
nil 키워드는 아무것도 가리키지 않는 것으로 보장되는 특수한 포인터 값입니다.

Not

Declaration

  • not boolean expression
  • not integer expression

Description
not 연산자는 부정을 수행합니다. 피연산자가 boolean 타입이면 논리 부정입니다. Not False = Truenot true = false. 피연산자가 정수이면 not 연산자는 정수 값의 각 비트를 비트 단위로 부정(즉, 보수 연산)합니다.

Of

Declaration
case expression of
  selector: expression1
  ...
end

Description
Of 키워드는 case 문에서 사용됩니다.

See also
Case 문

Or

Declaration

  • boolean expression or boolean expression
  • integer expression or integer expression

Description
or 연산자는 피연산자가 boolean 타입이면 논리 OR를, 정수이면 비트 단위 OR를 수행합니다. 논리 OR는 두 피연산자가 모두 false일 때만 false이며, 그 외에는(즉, 하나라도 true이면) true입니다.

See also
And 키워드
Not 키워드
Shl 키워드
Shr 키워드
Xor 키워드

Procedure

Declaration

  • Procedure name;
  • Procedure Name (Parameter, ...);

Description
procedure 키워드는 반환 타입이 없는 서브루틴을 선언합니다. 프로시저 내부에서 선언된 변수는 이 프로시저 밖에서 접근할 수 없습니다. 또한 이 키워드는 사용할 수는 있지만 스크립팅 시스템에서 무시됩니다.

Example:

Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
  Rand := Random(Max);
End;

See also
Function 키워드

Program

Declaration
Program Name;
declarations...
Block

Description
program 키워드는 스크립트를 시작합니다. 스크립트의 파일 확장자는 *.pas입니다. 또한 이 키워드는 사용할 수는 있지만 스크립팅 시스템에서 무시됩니다.

See also
Function 키워드

Raise

Declaration
Raise statement;

Description
raise 키워드는 Try 키워드와 관련이 있습니다. Raise 키워드는 매개변수 없이 사용하여 마지막 예외를 다시 발생(re-raise)시킬 수 있습니다. 또한 문자열 매개변수와 함께 사용하여 특정 메시지로 예외를 발생시킬 수도 있습니다.

Example:

Raise(Format('Invalid Value Entered : %d', \[Height])); 

DelphiScript에서는 On 키워드가 지원되지 않으므로, Exception 객체는 스크립트에서 사용할 수 없습니다.

Repeat

Declaration
repeat
statements;
until boolean expression

Description
Repeat Until 블록 안의 문장은 불리언 표현식이 true가 될 때까지 반복 실행됩니다.

Example:

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

See also
Until keyword

Result

Declaration
Var result : Function return type;

Description
스크립트의 모든 함수는 결과 값을 반환하기 위해 Result 키워드를 사용해야 합니다. 변수의 타입이 함수의 반환 타입이 됩니다.

See also
Function keyword

Shl

Declaration
value shl bits

Description
shl 연산자는 정수 값을 Bits비트만큼 왼쪽으로 시프트합니다. 비워진 비트는 오른쪽에서 0으로 채워집니다.

See also
And keyword
Not keyword
Or keyword
Shr keyword
Xor keyword

Shr

Declaration
value shr bits

Description
shr 연산자는 정수 값을 Bits비트만큼 오른쪽으로 시프트합니다. 비워진 비트는 왼쪽에서 0으로 채워집니다.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Xor keyword

String

Declaration

  • type string;
  • type Name = string[Constant]

Description
string 키워드는 문자열 타입을 나타냅니다.

Then

Declaration
If expression then statement

Description
Then 키워드는 If 문의 일부입니다.
See also
If keyword

To

Declaration
For variable := expression1 to expression2 do statement

Description
to 키워드는 증가 카운트하는 for 루프의 일부입니다.

Example

For i := 0 to AnIndex - 1 do
  S := S + #13 + AString;

See also
Downto keyword
For keyword

Try

Declaration

  • Try statements finally statements end;
  • Try statements except statements end;

Description
try 키워드는 try-except 문 또는 try-finally 문을 도입합니다. 이 두 문은 서로 관련이 있지만 목적이 다릅니다.

Try Finally
finally 블록의 문장은 try 블록을 빠져나가는 방식(예외, Exit, Break)과 무관하게 항상 실행됩니다. try-finally 블록은 임시 객체 및 기타 리소스를 해제하고 정리 작업을 수행하는 데 사용합니다. 일반적으로 서브루틴에서 try-finally 문은 하나 이상 필요하지 않습니다.

Example:

Reset(F);
Try
  ...  // process file F
Finally
  CloseFile(F);
End;

Try Except
예외적인 경우를 처리하려면 try-except를 사용합니다. 예를 들어 특정 예외를 잡아 오류 로그에 추가하거나 사용자 친화적인 대화상자를 만드는 등 유용한 처리를 할 수 있습니다. DelphiScript에서는 On 키워드가 지원되지 않으므로, Except 블록 안에서 Raise 문을 사용하십시오.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

See also
Raise keyword

Type

Declaration
Type Name = type declaration ...

Description
Type 키워드는 변수의 타입을 선언합니다. DelphiScript는 무타입(typeless) 언어이므로 특정 타입의 변수를 선언할 필요는 없지만, 스크립트의 가독성을 위해 선언할 수는 있습니다. 스크립트의 모든 변수는 항상 Variant 타입입니다. 스크립트 작성의 주요 제약은 레코드나 클래스를 선언할 수 없다는 점입니다.

스크립트에서는 타입 캐스팅이 무시되므로 변수 선언에서 Types는 무시되며 생략할 수 있습니다. 따라서 다음 선언은 올바릅니다:

Example:
var a : integer;
var b : integer;
var c, d;

프로시저/함수 선언에서 매개변수의 타입은 무시되며 생략할 수 있습니다. 예를 들어, 이 코드는 올바릅니다:

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

일반적으로 variant는 어떤 데이터 타입이든 저장할 수 있고 다양한 연산 및 타입 변환을 수행할 수 있습니다. variant는 런타임에 타입 체크 및 계산이 수행됩니다. 컴파일러는 코드의 잠재적 오류에 대해 경고하지 않으며, 이러한 오류는 광범위한 테스트를 통해서만 발견될 수 있습니다. 전반적으로 variant를 사용하는 코드 부분은 많은 연산이 런타임까지 결정될 수 없기 때문에 인터프리트 코드로 볼 수 있습니다. 이는 코드 속도에 영향을 줄 수 있습니다.

Example:

Var
V
Begin
  // you can assign to it values of several different types:
  V := 10;
  V := 'Hello, World';
  V := 45.55;
End;

See also
Var keyword

Unit

Declaration

  • Unit Name;
    interface
       declarations
    implementation
       declarations
       statements
    Initialization
       statements
    finalization
       statements
    end.

     
  • Unit Name;
    interface
       declarations
    implementation
       declarations
       statements
    begin
       statements
    end.

unit 키워드는 유닛(unit)을 도입하며, 유닛은 스크립트의 기본 모듈입니다. 이 키워드는 사용할 수 있지만 스크립팅 시스템에서는 무시된다는 점에 유의하십시오.

See also
Function keyword
Program keyword

Until

Declaration
Repeat
Statements;
Until boolean expression

Description
until 키워드는 Repeat-Until 블록의 끝을 표시합니다. Repeat-Until 블록 안의 문장은 불리언 표현식이 true가 될 때까지 반복 실행됩니다.

Example:

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

See also
Repeat keyword

Uses

Declaration
Uses Unit Name, ...;

Description
uses 키워드는 둘러싸는 유닛으로 가져오는(import) 유닛들의 이름을 나열합니다. uses 선언은 선택 사항인데, 스크립팅 시스템이 Altium Designer에서 가져온 유닛을 지원하기 때문입니다. 가독성을 위해 uses 선언을 포함할 수 있습니다.

같은 프로젝트 내에 저장된 모든 유닛은 이들 유닛 중 어느 것에서든 전역 변수에 접근할 수 있습니다. 같은 프로젝트 내 유닛에서 변수를 선언할 때 이 점을 염두에 두십시오.

Altium Designer의 Client, PCB, Schematic, WorkSpace Manager API와 Delphi의 SysUtils, Classes 및 기타 유닛은 가져와져 있으며 스크립트에서 사용할 수 있습니다. 따라서 스크립트에서 이러한 유닛을 별도로 선언할 특별한 필요는 없습니다.

See also

Var

Declaration
Name : Type
Name : Type = Expression;

DelphiScript Variables
스크립트의 모든 변수는 항상 Variant 타입입니다. 타입 캐스팅은 무시됩니다. 변수 선언의 Types는 무시되며 생략할 수 있으므로, 다음 선언은 올바릅니다:
Var a : integer;
Var b : integer;
Var c, d;

프로시저/함수 선언에서 매개변수의 타입은 무시되며 생략할 수 있습니다. 예를 들어, 이 코드는 올바릅니다:

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

일반적으로 variant는 어떤 데이터 타입이든 저장할 수 있고 다양한 연산 및 타입 변환을 수행할 수 있습니다. variant는 런타임에 타입 체크 및 계산이 수행됩니다. 컴파일러는 코드의 잠재적 오류에 대해 경고하지 않으며, 이러한 오류는 광범위한 테스트를 통해서만 발견될 수 있습니다. 전반적으로 variant를 사용하는 코드 부분은 많은 연산이 런타임까지 결정될 수 없기 때문에 인터프리트 코드로 볼 수 있습니다. 이는 코드 속도에 영향을 줄 수 있습니다.

variant 변수 선언:

Var
  V;
Begin
  // you can assign to it values of several different types:
  V := 10;
  V := 'Hello, World';
  V := 45.55;
End;

Array elements
배열 요소의 Type은 무시되며 생략할 수 있으므로, 다음 선언은 동등합니다:
Var x : array [1..2] of double;
Var x : array [1..2];

Illegal array example:
Type
  TVertices = Array [1..50] Of TLocation;
Var
  NewVertices : TVertices;

Legal array example:
Var
  NewVertices : Array [1..50] of TLocation;

While

Declaration
while expression do statement

Description
while 문은 표현식이 true인 동안 문장을 반복 실행합니다.

See also
Break keyword
Continue keyword
Do keyword
DownTo keyword
For keyword
Repeat keyword
To keyword
With keyword

With

Declaration
with expression do statement

Description
With 문은 레코드, 객체, 클래스 또는 인터페이스 참조를 스코프에 추가하여 심볼 이름을 해석할 수 있게 합니다.

Normal version example:

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

With version example:

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

See also
Do keyword

Xor

Declaration

  • boolean expression Xor boolean expression
  • integer expression Xor integer expression

Description
xor 연산자는 피연산자에 대해 배타적 OR(Exclusive Or)을 수행합니다. 피연산자가 불리언 타입이면 불리언 결과를 반환하며, 피연산자가 서로 다르면 true, 같으면 false를 반환합니다.

정수 xor는 피연산자의 각 비트에 대해 동작하여, 두 피연산자의 해당 비트가 서로 다르면 결과 비트를 1로 설정하고, 두 피연산자의 비트가 동일하면 0으로 설정합니다. 한 피연산자가 다른 것보다 작으면, 더 작은 피연산자는 왼쪽 최상위 비트에 0를 채워 확장됩니다.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Shr keyword

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

사용 가능한 기능은 보유하고 계시는 Altium 솔루션에 따라 달라집니다. 해당 솔루션은 Altium Develop, Altium Agile의 에디션(Agile Teams 또는 Agile Enterprise), 또는 활성기간 내의 Altium Designer 중 하나입니다.

안내된 기능이 고객님의 소프트웨어에서 보이지 않는 경우, 보다 자세한 내용을 위해 Altium 영업팀 에 문의해 주세요.

구버전 문서

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

콘텐츠