기능

DelphiScript 언어에서 일반적으로 사용되는 함수 문은 아래에 설명되어 있습니다. DelphiScript 함수의 범위는 FileIO 루틴, Math 루틴, String 루틴, Extension 루틴 섹션으로 나누어 제시됩니다.

Evaluate 함수로 식 계산하기

내장 함수 Evaluate는 런타임 동안 유효한 수학 표현식을 포함한 문자열을 해석하고 결과를 반환합니다. 예를 들어, Evaluate(ProcNames[ProcIndex]);와 같은 스크립트를 작성할 수 있으며, 그러면 ProcNames[ProcIndex]에 지정된 프로시저가 호출됩니다.

이러한 식을 계산하려면, expression이 Expr 매개변수로 지정되는 Evaluate 메서드를 사용할 수 있습니다. 예를 들어, 다음과 같은 식을 계산할 수 있습니다:

Evaluate('2+5');
Evaluate('((10+15)-5)/2*5');
Evaluate('sin(3.1415926/2)*10');
Evaluate('2.5*log(3)');

함수 및 프로시저에 매개변수 전달하기

스크립트에 정의된 함수와 프로시저는 모두 매개변수를 받도록 선언할 수 있습니다. 또한 함수는 값을 반환하도록 정의됩니다. 프로시저/함수 선언에서 매개변수의 타입은 무시되며 생략할 수 있습니다. 예를 들어, 다음 코드는 올바릅니다:

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

프로시저에서 빠져나오기

DelphiScript는 프로시저가 자연스럽게 종료되기 전에 강제로 종료하도록 하는 ExitBreak 문을 제공합니다. 예를 들어, 매개변수 값이 적절하지 않은 경우 사용자에게 경고를 표시하고 종료하고 싶을 수 있는데, 아래 예제가 이를 보여줍니다.

Procedure DisplayName (s);
Begin
  If s = '' Then
  Begin
    ShowMessage('Please enter a name');
    Exit;
  End;
  ShowMessage(S + ' is shown');
End;

파일 IO 루틴

DelphiScript에는 다음 IO 루틴이 있습니다:

Append

AssignFile

ChDir

CloseFIle

Eof

Eoln

Erase

GetDir

MkDir

Read

Readln

Reset

Rewrite

RmDir

Write

Writeln

 

 

DelphiScript를 사용하면 텍스트 파일에 정보를 쓸 수 있으며, DelphiScript는 비정형(untyped) 언어이므로 모든 값은 먼저 문자열로 변환되어야 합니다.

여기서 ReadReadLn 루틴은 동일합니다 — 다음 줄을 포함하지 않고 그 전까지 한 줄을 읽습니다. Writeln(String) 루틴은 Write(S)Write(LineFeed + CarriageReturn) 루틴과 동일합니다.

텍스트 파일을 쓰려면 AssignFile, ReWrite, WritelnCloseFile 프로시저를 사용하십시오. 텍스트 파일을 읽으려면 AssignFile, Reset, Readln, 및 CloseFile 프로시저를 사용하십시오. 아래 예제는 텍스트 파일에 쓰고 줄 끝(end-of-line) 마커를 추가합니다. IO 실패가 발생할 경우 스크립트를 안전하게 만들기 위해 Try / Finally / End 블록을 사용하는 것이 권장됩니다 .

Example:

Var
  InputFile : TextFile;
  OutputFile : TextFile;
  I          : Integer;
  Line       : String;
Begin
  AssignFile(OutputFile,eConvertedFile.Text);
  Rewrite(OutputFile);
  AssignFile(InputFIle,eOriginalFIle.Text);
  Reset(InputFile);
 
  Try
  While not EOF(InputFile) do
  Begin
    Readln(InputFile,Line);
    For I := 1 to Length(Line) Do
      Line[I] := UpperCase(Line[I]);
      Writeln(Outputfile, Line);
    End;
  Finally
    CloseFile(InputFile);
    CloseFile(OutputFile);
  End;
End;

수학 루틴

DelphiScript에는 다음 수학 루틴이 있습니다:

Abs

ArcTan

Cos

Exp

Frac

Int

Random

Randomize

Round

Sin

Sqr

Sqrt

Trunc

 

 

문자열 루틴

DelphiScript에는 문자열 또는 문자를 조작할 수 있는 다음 문자열 루틴이 있습니다. (DelphiScript에서 사용되는 문자열 루틴의 대부분은 Embarcadero Delphi의 SysUtils 유닛에서 가져온 것입니다.) 아래 표에는 그중 일부만 표시되어 있습니다:

AnsiCompareStr

AnsiCompareText

AnsiDequotedStr

AnsiExtractQuotedStr

AnsiLowerCase

AnsiPos

AnsiQuotedStr

AnsiSameStr

AnsiSameText

AnsiUpperCase

CompareStr

CompareText

Copy

Delete

FloatToStr

FloatToStrF

Format

Frac

Insert

Int

IsDelimiter

LastDelimiter

Length

LowerCase

Ord

Pos

Pred

QuotedStr

Round

SameText

SetLength

StringOfChar

StringToGUID

Succ

Trim

TrimLeft

TrimRight

UpCase

UpperCase

WideUpperCase

WideLowerCase

WideSameStr

WideSameText

 

 

DelphiScript에서 not 지원되는 문자열 루틴은 아래 표에 정리되어 있습니다:

AnsiContainsStr

AnsiContainsText

AnsiEndsStr

AnsiEndsText

AnsiIndexText

AnsiMatchStr

AnsiMatchText

AnsiReplaceStr

AnsiReplaceText

AnsiResemblesProc

AnsiResemblesText

AnsiStartsStr

AnsiStartsText

Concat

DecodeSoundExInt

DecodeSoundExWord

DupeString

LeftStr

MidStr

NullStr

ReverseString

RightStr

SetString

SoundEx

SoundExCompare

SoundExInt

SoundExProc

SoundExSimilar

SoundExWord

Str

StuffString

Val

 

확장(Extension) 루틴

확장 루틴은 스크립트에서 서버 프로세스(명령은 매개변수가 있는 경우 이를 포함한 패키징된 서버 프로세스임)를 다룰 때 사용되며, 특히 프로세스 매개변수의 문자열을 추출하거나 설정해야 할 때 유용합니다. 일부 루틴은 아래에 나열되어 있습니다.

스크립트에서 프로세스의 매개변수를 실행하려면 다음 함수가 필요할 수 있습니다:

AddColorParameter

AddIntegerParameter

AddLongIntParameter

AddSingleParameter

AddWordParameter

GetIntegerParameter

GetStringParameter

ResetParameters

RunProcess

Useful functions:

SetCursorBusy

ResetCursor

CheckActiveServer

GetActiveServerName

GetCurrentDocumentFileName

RunApplication

SaveCurrentDocument

 

 

Useful dialogs:

ConfirmNoYes

ConfirmNoYesCancel

ShowError

ShowInfo

ShowWarning

 

DelphiScript에서 Set 사용하기

Embarcadero Delphi의 SetIn 키워드와, set 연산자 +, -, *, <= >=는 DelphiScript에서 지원되지 않습니다. 이에 해당하는 Set Operator 키워드는 아래 표에 정리되어 있습니다.

DelphiScript에는 set 타입이 없습니다. DelphiScript 스크립트에서 set을 사용하려면 내장 함수인 MkSet, MkSetRange, InSet, SetUnion, SetDifference, SetIntersection, 및 SubSet 함수를 사용하여 set을 조작할 수 있습니다. 이에 대해서는 아래에서 더 자세히 설명합니다.

Set 연산자

Embarcadero Delphi Set Operator keyword

Equivalent DelphiScript Set Operator keyword

+

SetUnion

-

SetDifference

*

SetIntersection

<=

SubSet

=

=

<>

<>

In

InSet

MkSet 함수

MkSet 함수는 가변 개수의 인수를 받는 set 생성자입니다. 예:

Font.Style = MkSet(fsBold,fsItalic);

여기서 MkSet(fsBold,fsItalic) 는 set 요소 두 개, 즉 fsBoldfsItalic만을 의미합니다.

MkSetRange 함수

MkSetRange 함수는 인수 범위를 받는 set 생성자입니다. 예:

LayerSet := MkSetRange(eTopLayer,eBottomLayer);

MkSetRange(eTopLayer,eBottomLayer) 함수는 eTopLayer부터 eBottomLayer까지의 레이어 범위를 의미합니다.

InSet 함수

InSet 함수는 Delphi의 In 연산자를 대체하는 용도로 사용됩니다. A in BInSet(A, B)와 같습니다.

If InSet(A,B) then
  ShowMessage('A is in B set')
Else
  ShowMessage('A not in B set');

SetUnion 함수

SetUnion 함수는 Delphi의 + 연산자를 대체하는 용도로 사용됩니다. A + BSetUnion(A, B)와 같습니다.

ASet := BSet + CSet;
// should be changed to:
ASet := SetUnion(BSet,CSet);
// in order to achieve the desired script result.

SetDifference 함수

SetDifference 함수는 Delphi의 - 연산자를 대체하는 용도로 사용됩니다. A - BSetDifference(A, B)와 같습니다.

SetIntersection 함수

SetIntersection 함수는 Delphi의 * 연산자를 대체하는 용도로 사용됩니다. A * BSetIntersection(A, B)와 같습니다.

SubSet 함수

SubSet 함수는 Object Pascal의 <= 연산자를 대체하는 용도로 사용됩니다. A <= BSubSet(A, B)와 같습니다.

예외 처리기 사용하기

Try 키워드는 Try-Except 문 또는 Try-Finally 문을 도입합니다. 이 두 문은 서로 관련되어 있지만 목적이 다릅니다:

Try-Finally

Try-Finally에서는 Try 블록에서 예외가 발생하든, Exit 또는 Break가 발생하든 관계없이 Finally 블록의 문이 항상 실행됩니다 . Try-Finally 블록은 임시 객체 및 기타 리소스를 해제하고 정리(clean-up) 작업을 수행하는 데 사용합니다.

일반적으로 서브루틴에는 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;

Raise

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

Example:

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

On 키워드가 지원되지 않으므로, (Embarcadro Delphi에서 사용 가능한) Exception 객체는 사용할 수 없습니다.

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

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

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

구버전 문서

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

콘텐츠