キーワード

 

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

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

このセクションでは、一般的なDelphiScriptキーワードについて、詳細な情報と例を交えて解説します。Delphiファイル、数学演算、文字列処理ルーチンなどのキーワードに関する詳細については、「関数

および『Embarcadero Delphiリファレンス』を参照してください。

And

Declaration
And 演算子は、論理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キーワード

配列

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 キーワード
キーワードを繰り返す

Case

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

Description
Case 文は、式の値に応じて、複数の分岐候補の中から1つの分岐を選択します。

多くの場合、複雑なIf 文のセットは、Case 文に置き換えることで簡略化できます。式内のcase 文は、値、可能な値のリスト、または値の範囲を選択するために使用されます。 DelphiScriptは型のない言語であるため、case 文では任意の型を使用できます。Case 文には、セレクタの値(Case Of 条件内)に対応するラベルが1つもない場合に実行される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 キーワード

続行

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」
「For」キーワード
While キーワード
キーワードと併せて
キーワードまで

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-except 文およびcase 文のelse 部分には複数の文を含めることができます。

See also
キーワード
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のいずれによって制御が離れる場合でも、常に実行されます。try-finally ブロックの使用は、オブジェクトの作成・破棄やファイルI/Oを扱う際に推奨されます。

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 キーワード
~キーワード
キーワードの間
キーワードと

転送

Declaration
subroutine header; forward;

Description
Forward ディレクティブを使用すると、forward ディレクティブでヘッダー(名前、パラメータ、および戻り値の型)を宣言することで、関数やプロシージャを呼び出す前にそれらを宣言することができます。

関数

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

もし

Declaration

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

Description
If キーワードの条件は、ブール式でなければなりません。Else キーワードは省略可能です。

Example

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は型のない言語であるため、新しいレコード、配列、クラスなどの新しい型や、それらに関連するインターフェースを定義することはできません。

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となり、それ以外の場合、少なくとも1つのオペランドがtrueであればtrueとなります。

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])); 

なお、On キーワードはDelphiScriptではサポートされていないため、Exception オブジェクトをスクリプト内で使用することはできません。

Repeat

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
スクリプト内のすべての関数は、結果値を返すためにResult キーワードを使用する必要があります。変数typeは、その関数の戻り値の型です。

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 文またはtry-finally 文を開始します。これら2つの文は関連していますが、目的は異なります。

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

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

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
uses キーワードは、そのユニットを囲むユニットにインポートされるユニットの名前を列挙します。Altium Designerではスクリプトシステムがインポートされたユニットをサポートしているため、uses 宣言は省略可能です。可読性を高めるために、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;

一般的に、バリアントはあらゆるデータ型を格納し、数多くの演算や型変換を実行するために使用できます。バリアントは実行時に型チェックおよび計算が行われます。コンパイラはコード内の潜在的なエラーについて警告を出さないため、これらのエラーは徹底的なテストによってのみ検出可能です。 全体として、バリアントを使用するコード部分は、多くの操作が実行時まで解決されないため、インタプリタ型コードと見なすことができます。これはコードの実行速度に影響を与える可能性があります。

バリアント変数の宣言:

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

整数型xor は、オペランドの各ビットに対して演算を行い、両オペランドの対応するビットが異なる場合は結果のビットを1 に、両オペランドのビットが同一の場合は0に設定します。一方のオペランドが他方より小さい場合、小さい方のオペランドは、最左端のビットに0 が追加されて拡張されます。

See also
And キーワード
キーワードではない
Or キーワード
Shl キーワード
Shr キーワード

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
機能の提供状況

ご利用可能な機能は、お使いのAltiumソリューション(Altium DevelopAltium Agile TeamsAltium Agile Enterprise、または有効な契約期間中のAltium Designer)によって異なります。

実際にお使いのソフトウェアに文書化されている機能が表示されない場合は、詳細についてAltium Sales までお問い合わせください。

従来のドキュメント

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

Content