Altium Designer でサポートされている DelphiScript キーワード

  

このリファレンスでは、Altium Designer のスクリプトシステムで使用される DelphiScript のキーワードについて説明します。スクリプトシステムは DelphiScript 言語をサポートしており、これは Embarcadero Delphi™ プログラミング言語と非常によく似ています。主な違いは、DelphiScript が型を持たないスクリプト言語である点です。

 DelphiScript と Delphi プログラミング言語の違いについて詳しくは、DelphiScript と Delphi の違いのページをご参照ください。

このセクションでは、一般的な DelphiScript のキーワードについて、詳細な情報と例を交えて解説します。Delphi ファイル、数学、文字列処理ルーチンなど、さらに多くのキーワード情報については、関数Embarcadero Delphi リファレンスをご覧ください。

And

Declaration
 And 演算子は論理/ビット単位の AND を実行します。

Description
 And 演算子は、オペランドがブール型の場合は論理 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
 Break はループから抜け出すためのもので、Goto 文と似ています。

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 文は、式の値に応じて複数の分岐の中から1つを選択します。

多くの場合、複雑な 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;

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 型の式を変更しようとすると、スクリプトシステムは未宣言識別子エラーをスローします。

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 演算子は、小数点以下を切り捨てて整数除算を行います。除数がゼロの場合、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
  DownToFor ループ内で使用してカウントダウンします。

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 キーワードは、いくつかの文のキャッチオール部分を導入します。else 部分は if 文の後に単一の文が続きますが、else 部分は try-exceptcase 文の後に複数の文を持つことができます。

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 文などの複数部分の終了を示します。

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 などで抜けた場合でも必ず実行されます。オブジェクトの生成/破棄やファイル I/O を扱う際には、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 ディレクティブは、関数や手続きを呼び出す前に、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 キーワードの条件はブール式でなければなりません。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 キーワードは、メモリ上に存在するオブジェクトへのアクセスと、そのオブジェクトのメソッドの呼び出しを可能にします。インターフェースはプロパティとメソッドのみで構成され、データは含みません。インターフェースはデータを持てないため、プロパティはメソッドを通じて読み書きされます。最も重要なのは、インターフェースには実装がなく、メモリ上の既存オブジェクトへの契約のみを定義する点です。

インターフェースは、コンピュータのメモリ上に存在するオブジェクトへの接点と考えることができ、インターフェースのプロパティを通じてデータの読み書きが可能です。インターフェースは、関連付けられたオブジェクトからデータを要求します。

DelphiScript は型を持たない言語のため、新しいレコード、配列、クラス、またそれらに関連するインターフェースを定義することはできません。

他の用途で使われる Interface キーワードにも注意してください。これは Embarcadero Delphi ユニットの Interface/Implementation セクションで使用されます。これらの Interface/Implementation キーワードはスクリプト内で使用できますが、Altium Designer でスクリプトが実行される際には基本的に無視されます。

ラベル

Declaration
label digits, identifier, ...;

Description
label キーワードは、1つまたは複数のラベルを宣言します。ラベルは最大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 演算子は否定を行います。オペランドがブール型の場合、否定は論理否定になります。Not False = True および not 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 演算子は、オペランドがブール型の場合は論理 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 キーワードはパラメータなしで使用すると直前の例外を再スローできます。また、文字列パラメータを指定して特定のメッセージで例外を発生させることもできます。

Example:

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

On キーワードは DelphiScript ではサポートされていないため、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 キーワード

Result

Declaration
Var result : Function return type;

Description
スクリプト内のすべての関数は、Result キーワードを使って結果値を返す必要があります。変数の型は関数の戻り値の型です。

See also
Function キーワード

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 キーワード

String

Declaration

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

Description
string キーワードは文字列型を表します。

Then

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 キーワード

Try

Declaration

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

Description
try キーワードは try-except 文または try-finally 文を導入します。これら2つの文は関連していますが、目的が異なります。

Try Finally
finally ブロック内の文は、try ブロックから例外、Exit、Break などで抜けた場合でも必ず実行されます。try-finally ブロックは、一時オブジェクトやその他のリソースの解放、クリーンアップ処理を行うために使用します。通常、サブルーチン内で try-finally 文は1つで十分です。

Example:

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

Try Except
try-except を使って例外的なケースを処理します。たとえば、特定の例外をキャッチしてエラーログに追加したり、ユーザーフレンドリーなダイアログボックスを作成したりできます。On キーワードは DelphiScript でサポートされていないため、Except ブロック内で Raise 文を使用してください。

Example:

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

See also
Raise キーワード

Type

Declaration
Type Name = type declaration ...

Description
Type キーワードは変数の型を宣言します。DelphiScript は型なし言語なので、特定の型で変数を宣言する必要はありませんが、スクリプトの可読性のために宣言することもできます。スクリプト内のすべての変数は常に Variant 型です。スクリプト作成時の主な制限は、レコードやクラスを宣言できないことです。

スクリプトでは型変換は無視されるため、変数宣言時の型指定は無視され、省略できます。したがって、次の宣言は正しいです:

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 ブロック内の文は、ブール式が true になるまで繰り返し実行されます。

Example:

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

See also
Repeat キーワード

Uses

Declaration
Uses Unit Name, ...;

Description
uses キーワードは、周囲のユニットにインポートされるユニット名を列挙します。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型です。型変換は無視されます。変数宣言時の型指定も無視され、省略可能ですので、以下の宣言は正しいものです:
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
配列要素の型も無視され、省略可能ですので、以下の宣言は同等です:
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 文は、式が真である間、文を繰り返し実行します。

See also
Break キーワード
Continue キーワード
Do キーワード
DownTo キーワード
For キーワード
Repeat キーワード
To キーワード
With キーワード

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 演算子は、オペランドに対して排他的論理和(XOR)を実行します。オペランドがブール型の場合、結果もブール型となり、オペランドが異なればtrue、同じであればfalseを返します。

整数型の xor は、各ビットごとにオペランドを比較し、両方のオペランドの対応するビットが異なれば結果ビットを 1 に、同じであれば0に設定します。一方のオペランドが他方より小さい場合、小さい方のオペランドは左端のビットが 0 で拡張されます。

See also
And キーワード
Not キーワード
Or キーワード
Shl キーワード
Shr キーワード

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
機能の可用性

利用できる機能は、所有する Altium ソリューション (Altium DevelopAltium Agile のエディション (Agile Teams、または Agile Enterprise)、または Altium Designer (有効な期間)) によって異なります。

説明されている機能がお使いのソフトウェアに表示されない場合、Altium の営業担当者にお問い合わせください

従来のドキュメント

Altium Designer のドキュメントは、バージョンごとに掲載されなくなりました。Altium Designer の旧バージョンのドキュメントは、Other Installers ページの Legacy Documentation の項目をご覧ください。

Content