Altium Designer でサポートされている DelphiScript キーワード
このリファレンスでは、Altium Designer のスクリプトシステムで使用される DelphiScript のキーワードについて説明します。スクリプトシステムは DelphiScript 言語をサポートしており、これは Embarcadero Delphi™ プログラミング言語と非常によく似ています。主な違いは、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
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 キーワード
Repeat キーワード
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
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 キーワード
To キーワード
While キーワード
With キーワード
DownTo キーワード
DownTo
For variable := expression1 DownTo expression2 Do statement.
DownToFor
For キーワード
To キーワード
Do キーワード
Else
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
Elseelseifelsetry-exceptcase
If キーワード
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 キーワード
To キーワード
While キーワード
With キーワード
Forward
subroutine header; forward;
Forwardforward
Function
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
-
if condition then statement; -
if condition then statement1 else statement2;
IfElse
If A > B Then ShowMessage('X>Y and A > B'); Else ShowMessage('X>Y and A <=B'); End;
And キーワード
Begin キーワード
Or キーワード
Then キーワード
Else キーワード
Interface
Interface
// Globally unique identifier string.
Methods
Properties
End;
interface
インターフェースは、コンピュータのメモリ上に存在するオブジェクトへの接点と考えることができ、インターフェースのプロパティを通じてデータの読み書きが可能です。インターフェースは、関連付けられたオブジェクトからデータを要求します。
DelphiScript は型を持たない言語のため、新しいレコード、配列、クラス、またそれらに関連するインターフェースを定義することはできません。
ラベル
label digits, identifier, ...;
labelgoto
Label StartHere; // code StartHere: //do anything; Goto StartHere;
Goto キーワード
Mod
Integer expression mod integer expression
modA mod BA - (A div B) * B
Div 関数
Nil
const nil = pointer(0);
nil
Not
-
not boolean expression -
not integer expression
notNot False = Truenot true = falsenot
Of
case expression of
selector: expression1
...
end
Ofcase
Case 文
Or
-
boolean expression or boolean expression -
integer expression or integer expression
or
And キーワード
Not キーワード
Shl キーワード
Shr キーワード
Xor キーワード
Procedure
-
Procedure name; -
Procedure Name (Parameter, ...);
procedure
Procedure TestRand(Var Rand: Integer; Max : Integer); Begin Rand := Random(Max); End;
Function キーワード
Program
Program Name;
declarations...
Block
program*.pas
Function キーワード
Raise
Raise statement;
raiseTryRaise
Raise(Format('Invalid Value Entered : %d', \[Height]));
OnException
Repeat
repeat
statements;
until boolean expression
Repeat Until
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I <= 9);
Until キーワード
Result
Var result : Function return type;
スクリプト内のすべての関数は、Result
Function キーワード
Shl
value shl bits
shlBits
And キーワード
Not キーワード
Or キーワード
Shr キーワード
Xor キーワード
Shr
value shr bits
shrBits
And キーワード
Not キーワード
Or キーワード
Shl キーワード
Xor キーワード
String
-
type string; -
type Name = string[Constant]
string
Then
If expression then statement
ThenIf
If キーワード
To
For variable := expression1 to expression2 do statement
tofor
For i := 0 to AnIndex - 1 do S := S + #13 + AString;
Downto キーワード
For キーワード
Try
-
Try statements finally statements end; -
Try statements except statements end;
trytry-excepttry-finally
finallytry-finallytry-finally
Reset(F); Try ... // process file F Finally CloseFile(F); End;
try-exceptOnExceptRaise
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Raise キーワード
Type
Type Name = type declaration ...
Type
スクリプトでは型変換は無視されるため、変数宣言時の型指定は無視され、省略できます。したがって、次の宣言は正しいです:
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;
Var キーワード
Unit
-
Unit Name;
interface
declarations
implementation
declarations
statements
Initialization
statements
finalization
statements
end.
-
Unit Name;
interface
declarations
implementation
declarations
statements
begin
statements
end.
unit
Function キーワード
Program キーワード
Until
Repeat
Statements;
Until boolean expression
untilRepeat-UntilRepeat-Until
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I <= 9);
Repeat キーワード
Uses
Uses Unit Name, ...;
usesuses
同じプロジェクト内に保存されているすべてのユニットは、これらのユニットのグローバル変数にアクセスできます。同じプロジェクト内のユニットで変数を宣言する際は、この点に注意してください。
Altium Designer の Client、PCB、Schematic、WorkSpace Manager API、および Delphi の SysUtils、Classes などのユニットはインポートされており、スクリプトで使用できます。そのため、これらのユニットをスクリプト内で宣言する必要は特にありません。
Altium Designer API の詳細については、Altium Designer API の使用方法 ドキュメントを参照してください。
Var
Name : Type
Name : Type = Expression;
すべてのスクリプト内の変数は常にVariant型です。型変換は無視されます。変数宣言時の型指定も無視され、省略可能ですので、以下の宣言は正しいものです:
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;
配列要素の型も無視され、省略可能ですので、以下の宣言は同等です:
Var x : array [1..2] of double;
Var x : array [1..2];
Type
TVertices = Array [1..50] Of TLocation;
Var
NewVertices : TVertices;
Var
NewVertices : Array [1..50] of TLocation;
While
while expression do statement
while
Break キーワード
Continue キーワード
Do キーワード
DownTo キーワード
For キーワード
Repeat キーワード
To キーワード
With キーワード
With
with expression do statement
With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Do キーワード
Xor
- ブール式 Xor ブール式
-
integer expression Xor integer expression
xor
整数型の xor10