キーワード
このリファレンスでは、Altium Designerのスクリプティング・システムで使用されるDelphiScriptキーワードについて解説します。このスクリプティング・システムは、Embarcadero Delphi™プログラミング言語と非常に類似したDelphiScript言語をサポートしています。主な違いは、DelphiScriptが型のないスクリプト言語であるという点です。
「」このセクションでは、一般的なDelphiScriptキーワードについて、詳細な情報と例を交えて解説します。Delphiファイル、数学演算、文字列処理ルーチンなどのキーワードに関する詳細については、「関数
」および『Embarcadero Delphiリファレンス』を参照してください。
And
And
And
Var I, J : Integer Begin I := $F0; J := $8F; ShowMessage(IntToStr(I and J)); End;
Var S : String; Begin S := ''; If (Length(S) > 0) and (S[1\] = 'X') Then Delete(S,1,1); End;
配列
Array [index range];
DelphiScriptは型のない言語であるため、配列のサイズまたは範囲を指定する必要があります。配列が保持できる要素の型は定義可能ですが、必須ではありません。Open array
var x : array [1..2];
Begin
Begin
statement
End;
begin
Var Test : Integer; Begin Test := Test + 4; ShowMessage(IntToStr(Test)); End;
Endキーワード
Break
Break;
BreakGoto
While Condition Do Begin DoSomething; Begin If AnotherCondition Then Break; End; End;
While キーワード
Continueキーワード
Do キーワード
キーワードを繰り返す
Case
Case expression Of
Value range : Expression;
Else Expression;
End;
Case
多くの場合、複雑なIfCasecasecaseCaseCase Ofelse
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;
Case UserName Of Jack', 'Joe' : IsAdministrator := true; 'Fred' : IsAdministrator := false; Else Raise('Unknown User'); End;
Of キーワード
続行
Continue
ContinueGoto
Var I := 0; s:= 1; Begin While True Do Begin S := S \* 2; I := I \\+ 1; If I > 4 then continue; Break; End;
Break キーワード
Whileキーワード
Continue キーワード
「Do」キーワード
キーワード「Repeat」
Const
Const
Name = Expression;
Constconst
Const b = 30; Begin ShowMessage(IntTtStr(b)); End;
b const
Const b = 30; Begin b := 40; ShowMessage(IntToStr(b)); End;
Div
dividend div divisor
Div
Do
-
文For variable := expression1 to expression2 do -
文While expression do -
ステートメント。With expression do
DoFor, While and With
For i := 0 To AnIndex - 1 Do S := S + #13 + AString;
キーワード「for」
「For」キーワード
While キーワード
キーワードと併せて
キーワードまで
DownTo
For variable := expression1 DownTo expression2 Do statement.
For DownTo
Forキーワード
To キーワード
キーワード「Do」
Else
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
Elseifelsetry-exceptcaseelse
キーワード
Then キーワード
Try キーワード
Case キーワード
End
-
Begin statements End; -
Try statements Except Exception clauses... else Statements... End; -
Try statements Finally statements End; -
Case Expression of clauses Else statements... End;
EndCase
Begin キーワード
Case キーワード
Tryキーワード
Except
Try statements Except statements End;
Try-ExceptOnExceptRaise
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Endキーワード
Finallyキーワード
Tryキーワード
Finally
Try statements... Finally statements... End;
finallytry-finallyfinallytrytry-finally
Endキーワード
Raise キーワード
Tryキーワード
For
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
for
For i := 0 to AnIndex - 1 Do Begin S := S + #13 + AString; End; ShowMessage(S);
Doキーワード
DownTo キーワード
Repeat キーワード
~キーワード
キーワードの間
キーワードと
転送
subroutine header; forward;
Forwardforward
関数
Function name (parameters) : return type;
Function
Function TestFunc(Min, Max : integer) : integer; Begin Result := Random(Max - Min +1); End;
Goto
goto label
goto
Label StartHere; // code StartHere: //do anything; Goto StartHere;
Label キーワード
もし
-
if condition then statement; -
if condition then statement1 else statement2;
IfElse
If A > B Then ShowMessage('X>Y かつ A > B'); Else ShowMessage('X>Y かつ A <=B'); End;</code></wrap></pre> <p><wrap><strong>関連項目</strong></wrap><br> <a href="#And">And キーワード</a><br> <a href="#Begin">Begin キーワード</a><br> <a href="#Or">Or キーワード</a><br> <a href="#Then">Then キーワード</a><br> <a href="#Else">Else キーワード</a> </p> <p><a id="Interface" name="Interface"></a> </p> <h3>インターフェース</h3> <p><wrap><strong>宣言</strong></wrap><br> <wrap><code>インターフェース<br> // グローバルに一意な識別子文字列。<br> メソッド<br> プロパティ<br> End;</code></wrap> </p> <p><wrap><strong>説明</strong></wrap><br> <wrap><code>interface</code></wrap> キーワードを使用すると、メモリ内の既存のオブジェクトにアクセスし、そのオブジェクトのメソッドを呼び出すことができます。 インターフェースは、プロパティとメソッドのみで構成され、データを含めることはできません。インターフェースはデータを保持できないため、そのプロパティはメソッドを介して読み書きを行う必要があります。最も重要な点は、インターフェースには実装が存在しないということです。これは、インターフェースがメモリ内の既存のオブジェクトに対する契約を定義するだけだからです。インターフェースは、コンピュータのメモリ内にある既存のオブジェクトへの接点として考えることができ、インターフェースのプロパティを通じてデータを読み書きする機能を提供します。インターフェースは、関連付けられたオブジェクトからデータを要求します。
DelphiScriptは型のない言語であるため、新しいレコード、配列、クラスなどの新しい型や、それらに関連するインターフェースを定義することはできません。
ラベル
Declaration
label digits, identifier, ...;
Description
キーワードは、1つ以上のラベルを宣言します。ラベルは、最大4桁の数字列、または識別子です。ラベルは、同じブロック内で、 label文のターゲットとなる文を特定するために使用できます。 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
キーワードは、一意であり、かつ何も指していないことが保証されている特別なポインタ値です。 nilNot
Declaration
not boolean expressionnot integer expression
Description
演算子は、否定演算を実行します。オペランドがブール型の場合、その否定は論理否定となります。 notおよび Not False = True。オペランドが整数型の場合、 not true = false演算子は、整数値の各ビットに対してビット単位の否定、すなわち補数演算を実行します。 notOf
Declaration
case expression of
selector: expression1
...
end
Description
キーワードは、 Of文で使用されます。 case
See also
Case文Or
Declaration
boolean expression or boolean expressioninteger expression or integer expression
Description
演算子は、オペランドがブール型の場合は論理ORを、オペランドが整数型の場合はビット単位のORを実行します。論理ORは、両方のオペランドがfalseの場合にのみfalseとなり、それ以外の場合、少なくとも1つのオペランドがtrueであればtrueとなります。 or
See also
And キーワード
Notキーワード
Shl キーワード
Shl キーワード
Xor キーワード手順
Declaration
Procedure name;Procedure Name (Parameter, ...);
Description
キーワードは、戻り値の型を持たないサブルーチンを宣言します。プロシージャ内で宣言された変数は、そのプロシージャの外からはアクセスできません。なお、このキーワードは使用可能ですが、スクリプトシステムでは無視されます。 procedure
Example: Procedure TestRand(Var Rand: Integer; Max : Integer); Begin Rand := Random(Max); End;
See also
Functionキーワードプログラム
Declaration
Program Name;
declarations...
Block
Description
キーワードはスクリプトの開始を示します。スクリプトのファイル拡張子は programです。このキーワードは使用可能ですが、スクリプトシステムでは無視される点に注意してください。 *.pas
See also
関数キーワードRaise
Declaration
Raise statement;
Description
キーワードは、 raiseキーワードに関連しています。 Tryキーワードは、引数なしで指定すると、直前に発生した例外を再発生させます。また、文字列引数を指定して使用すると、特定のメッセージを用いて例外を発生させることができます。 Raise
Example: Raise(Format('Invalid Value Entered : %d', \[Height]));なお、
キーワードはDelphiScriptではサポートされていないため、 Onオブジェクトをスクリプト内で使用することはできません。 ExceptionRepeat
Declaration
repeat
statements;
until boolean expression
Description
ブロック内の文は、ブール式が真となるまで繰り返し実行されます。 Repeat Until
Example: Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
See also
Until キーワード結果
Declaration
Var result : Function return type;
Description
スクリプト内のすべての関数は、結果値を返すためにキーワードを使用する必要があります。変数typeは、その関数の戻り値の型です。 Result
See also
関数キーワードShl
Declaration
value shl bits
Description
演算子は、整数値を shlビット分左にシフトします。空いたビットは、右側からゼロビットで埋められます。 Bits
See also
And キーワード
Notキーワード
Orキーワード
Shr キーワード
XORキーワードShr
Declaration
value shr bits
Description
演算子は、整数値を shrビット分右にシフトします。空いたビットは、左側からゼロビットで埋められます。 Bits
See also
Andキーワード
Notキーワード
Orキーワード
Shl キーワード
XORキーワード文字列
Declaration
type string;type Name = string[Constant]
Description
キーワードは、文字列型を表します。 string次に
Declaration
If expression then statement
Description
キーワードは、 Then文の一部です。 If
See also
Ifキーワード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キーワード
Forキーワード試す
Declaration
Try statements finally statements end;Try statements except statements end;
Description
キーワードは、 try文または try-except文を開始します。これら2つの文は関連していますが、目的は異なります。 try-finally
Try Finally
ブロック内の文は、制御がtryブロックから例外、Exit、またはBreakによってどのように抜け出しても、常に実行されます。 finallyブロックは、一時オブジェクトやその他のリソースを解放し、クリーンアップ処理を行うために使用します。通常、サブルーチン内で try-finally文を複数回記述する必要はありません。 try-finally
Example: Reset(F); Try ... // process file F Finally CloseFile(F); End;
Try Except
は、例外的なケースを処理するために使用します。たとえば、特定の例外をキャッチして、それらをエラーログに追加したり、わかりやすいダイアログボックスを表示したりするなど、有用な処理を行う場合です。DelphiScriptでは try-exceptキーワードがサポートされていないため、 Onブロック内で Except文を使用してください。 Raise
Example: Try X := Y/Z; Except Raise('A divide by zero error!'); End;
See also
Raiseキーワード型
Declaration
Type Name = type declaration ...
Description
キーワードは、変数の型を宣言します。DelphiScriptは型のない言語であるため、特定の型で変数を宣言する必要はありませんが、スクリプトの可読性を高めるために宣言を行うことは可能です。スクリプト内のすべての変数は、常にVariant型となります。 スクリプト作成における主な制限は、レコードやクラスを宣言できないことです。 Typeスクリプトでは型変換が無視されるため、変数宣言における型指定は無視され、省略可能です。したがって、以下の宣言は正しいです:
Example:
var a : integer;
var b : integer;
var c, d;プロシージャや関数の宣言におけるパラメータの型は無視されるため、省略可能です。たとえば、次のコードは正しいです:
Function sum(a, b) : integer; Begin Result := a + b; End;一般的に、バリアントはあらゆるデータ型を格納し、数多くの演算や型変換を実行するために使用できます。 バリアントは実行時に型チェックおよび計算が行われます。コンパイラはコード内の潜在的なエラーについて警告を出さないため、これらのエラーは徹底的なテストによってのみ検出可能です。全体として、バリアントを使用するコード部分は、多くの操作が実行時まで解決されないため、インタプリタ型コードと見なすことができます。これはコードの実行速度に影響を与える可能性があります。
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 キーワード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
See also
Functionキーワード
ProgramキーワードUntil
Declaration
Repeat
Statements;
Until boolean expression
Description
キーワードは、 untilブロックの終了を示します。 Repeat-Untilブロック内の文は、ブール式が真になるまで繰り返し実行されます。 Repeat-Until
Example: Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
See also
Repeatキーワード用途
Declaration
Uses Unit Name, ...;
Description
キーワードは、そのユニットを囲むユニットにインポートされるユニットの名前を列挙します。Altium Designerではスクリプトシステムがインポートされたユニットをサポートしているため、 uses宣言は省略可能です。可読性を高めるために、uses宣言を含めることもできます。 uses同じプロジェクト内に格納されているすべてのユニットは、これらのユニットのいずれからでもグローバル変数にアクセスできます。同じプロジェクト内のユニットで変数を宣言する際は、この点に留意してください。
Altium DesignerのClient、PCB、Schematic、WorkSpace Manager API、およびDelphiのSysUtils、Classes、その他のユニットはインポートされており、スクリプト内で使用可能です。したがって、スクリプト内でこれらのユニットを特に宣言する必要はありません。
See also Altium Designer API に関する詳細については、『Altium Designer API の使用』ドキュメントを参照してください。
Var
Declaration
Name : Type
Name : Type = Expression;
DelphiScript Variables
スクリプト内のすべての変数は、常に Variant 型となります。型キャストは無視されます。変数宣言における型指定は
無視され、省略可能です
。
したがって、以下の宣言は正しいものです。
Var a : integer;
Var b : integer;
Var c, d;プロシージャや関数の宣言におけるパラメータの型指定は無視され、省略可能です。たとえば、次のコードは正しいものです。
Function sum(a, b) : integer; Begin Result := a + b; End;一般的に、バリアントはあらゆるデータ型を格納し、数多くの演算や型変換を実行するために使用できます。バリアントは実行時に型チェックおよび計算が行われます。コンパイラはコード内の潜在的なエラーについて警告を出さないため、これらのエラーは徹底的なテストによってのみ検出可能です。 全体として、バリアントを使用するコード部分は、多くの操作が実行時まで解決されないため、インタプリタ型コードと見なすことができます。これはコードの実行速度に影響を与える可能性があります。
バリアント変数の宣言:
Var V; Begin // you can assign to it values of several different types: V := 10; V := 'Hello, World'; V := 45.55; End;
Array elements
配列要素の型は無視されるため、省略可能です。したがって、以下の宣言は同等です:
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;一方
、
Declaration
while expression do statement
Description
ステートメントは、式が真である間、そのステートメントを繰り返し実行します。 while「
See also
Break キーワード
Continue キーワード
Do キーワード
DownTo キーワード
For キーワード
Repeat キーワード
To キーワード
~とキーワード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 キーワードXor
Declaration
- ブール式 XOR ブール式
integer expression Xor integer expression
Description
演算子は、そのオペランドに対して排他的論理和(XOR)演算を実行します。オペランドがブール型の場合、ブール値の結果を返します。オペランドが異なる場合はtrue、同じ場合はfalseとなります。 xor整数型
は、オペランドの各ビットに対して演算を行い、両オペランドの対応するビットが異なる場合は結果のビットを xorに、両オペランドのビットが同一の場合は0に設定します。一方のオペランドが他方より小さい場合、小さい方のオペランドは、最左端のビットに 1が追加されて拡張されます。 0