Ключевые слова

 

В данном справочнике описаны ключевые слова DelphiScript, используемые в системе скриптов Altium Designer. Система скриптов поддерживает язык DelphiScript, который очень похож на язык программирования Embarcadero Delphi™. Основное отличие заключается в том, что DelphiScript является языком скриптов без типов.

Более подробную информацию о различиях между DelphiScript и языком программирования Delphi см. на странице «Различия между DelphiScript и Delphi ».

В данном разделе приведены общие ключевые слова DelphiScript с подробной информацией и примерами. Дополнительную информацию о ключевых словах, таких как процедуры обработки файлов Delphi, математические операции и работа со строками, см. в разделах«Функции» и «Справочник Embarcadero Delphi».

И

Declaration
Оператор « And » выполняет логическое или побитовое «и».

Description
Оператор « And » выполняет логическое «и», если операнды имеют тип «boolean», или побитовое «и», если операнды являются целыми числами.

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»
ИЛИ ключевое слово

Массив

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 » выбирают одну ветвь из множества возможных в зависимости от значения выражения.

Во многих ситуациях сложный набор операторов « If » можно упростить, заменив их операторами « Case ». Оператор « case » в выражении используется для выбора значения, списка возможных значений или диапазона значений. В операторе « case » можно использовать любые типы, поскольку DelphiScript является языком без типизации. Операторы « Case » могут содержать оператор « else », который выполняется, если ни одна из меток не соответствует значению селектора (в рамках условия « Case Of »).

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 » является частью операторов « For, While and With » языка DelphiScript.

Example:

For i := 0 To AnIndex - 1 Do
  S := S + #13 + AString;

See also
Ключевое слово «for»
К ключевому слову
Ключевое слово While
С ключевым словом
До ключевого слова

До

Declaration
For variable := expression1 DownTo expression2 Do statement.

Description
Используйте оператор « DownTo » в цикле « For » для обратного отсчёта.

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» нескольких операторов. Обратите внимание, что за частью « else » оператора « if » следует один оператор, но часть « else » операторов « try-except » и « case » может содержать несколько операторов.

See also
Если ключевое слово
Then — ключевое слово
Ключевое слово Try
Ключевое слово Case

Конец

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 » для обработки исключительных случаев, например, для перехвата определённых исключений и выполнения с ними полезных действий, таких как добавление их в журнал ошибок или создание удобного диалогового окна. Поскольку ключевое слово « On » не поддерживается в DelphiScript, используйте оператор « Raise » внутри блока « Except » и выводите только текстовое сообщение.

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 » начинает часть «finally» блока « try-finally ». Операторы в блоке « finally » всегда выполняются, независимо от того, как управление покидает блок « try » — по исключению, выходу или прерыванию. Использование блока «try-finally » рекомендуется при работе с созданием/уничтожением объектов и вводом-выводом файлов.

See also
Ключевое слово `end`
Ключевое слово `Raise`
Ключевое слово `Try`

Для

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 » переносит управление к указанной метке. Меткой может быть любой идентификатор или строка из цифр длиной не более четырёх цифр.

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>
    Конец;</code></wrap>
</p>

<p><wrap><strong>Описание</strong></wrap><br>
    Ключевое слово <wrap><code>interface</code></wrap> обеспечивает доступ к существующему объекту в памяти и вызывает методы этого объекта. Интерфейс может состоять только из свойств и методов — без данных. Поскольку интерфейсы не могут содержать данных, их свойства должны осуществлять запись в методы и чтение из них. Что наиболее важно, интерфейсы не имеют реализации, так как они лишь определяют договор с существующим объектом в памяти.


Интерфейс можно рассматривать как точку взаимодействия с существующим объектом в памяти компьютера, который предоставляет возможность чтения и записи данных через свойства интерфейса. Интерфейс запрашивает данные у связанного с ним объекта.

DelphiScript — язык без типов, поэтому вы не можете определять новые типы, такие как новые записи, массивы или классы, а также связанные с ними интерфейсы.

Следует помнить о другом значении ключевого слова « Interface », которое используется в разделах «Interface» и «Implementation» модулей Embarcadero Delphi. Эти ключевые слова «Interface» и «Implementation» можно использовать в скриптах, но при выполнении скрипта в Altium Designer они, по сути, игнорируются.

Метка

Declaration
label digits, identifier, ...;

Description
Ключевое слово « 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
Ключевое слово nil представляет собой специальное значение указателя, которое гарантированно не совпадает с другими и не указывает ни на что.

Not

Declaration

  • not boolean expression
  • not integer expression

Description
Оператор ` not ` выполняет отрицание. Если операнд имеет тип «булево значение», отрицание представляет собой логическое отрицание. ` Not False = True ` и ` not true = false`. Если операнд является целым числом, оператор ` not ` выполняет побитовое отрицание каждого бита в целочисленном значении — то есть операцию дополнения до 1.

Ключевое слово

Declaration
case expression of
  selector: expression1
  ...
end

Description
Ключевое слово « Of » используется в операторе « case ».

See also
Оператор case

Или

Declaration

  • boolean expression or boolean expression
  • integer expression or integer expression

Description
Оператор « or » выполняет логическое «ИЛИ», если операнды имеют тип «boolean», или побитовое «ИЛИ», если операнды являются целыми числами. Логическое «ИЛИ» равно «false» только в том случае, если оба операнда равны «false»; в противном случае оно равно «true», если хотя бы один операнд равен «true».

See also
Ключевое слово «And»
Ключевое слово «Not»
Ключевое слово «Shl»
Ключевое слово «Shr»
Ключевое слово 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
Ключевое слово «function»

Raise

Declaration
Raise statement;

Description
Ключевое слово « raise » связано с ключевым словом « Try ». Ключевое слово « Raise » можно использовать без параметров, чтобы повторно вызвать последнее исключение. Его также можно использовать со строковым параметром, чтобы вызвать исключение с использованием конкретного сообщения.

Example:

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

Обратите внимание, что ключевое слово « On » не поддерживается в DelphiScript, поэтому объекты « Exception » нельзя использовать в скриптах.

Повтор

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 » для возврата результирующего значения. Тип переменной соответствует типу возвращаемого значения функции.

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

Строка

Declaration

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

Description
Ключевое слово « string » обозначает тип «строка».

Далее

Declaration
If expression then statement

Description
Ключевое слово « Then » является частью оператора « If ». «
» «See also » «

»

Ключевое слово «if»

Для

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 ». Эти два оператора связаны между собой, но служат разным целям.

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 » для обработки исключительных случаев, например, чтобы перехватить конкретные исключения и выполнить с ними полезные действия, такие как добавление их в журнал ошибок или создание удобного диалогового окна. Поскольку ключевое слово « On » не поддерживается в DelphiScript, используйте оператор « Raise » внутри блока « Except ».

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»

До

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 » перечисляет имена модулей, которые импортируются в окружающий модуль. Объявление « uses » является необязательным, поскольку система сценариев поддерживает модули, импортированные в Altium Designer. Вы можете включить объявление «uses» для удобства чтения.

Все модули, хранящиеся в одном проекте, могут обращаться к глобальным переменным из любого из этих модулей. Учитывайте это при объявлении переменных в модулях одного проекта.

API-интерфейсы Altium Designer (Client, PCB, Schematic и WorkSpace Manager), а также модули SysUtils, Classes и другие модули Delphi импортируются и доступны для использования в скриптах — поэтому нет особой необходимости объявлять эти модули в скриптах.

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»
К ключевому слову
С ключевым словом

С

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 » выполняет операцию «исключающее ИЛИ» над своими операндами. Если операнды имеют тип «boolean», он возвращает результат типа «boolean» — «true», если операнды различаются, и «false», если они совпадают.

Целочисленный оператор « xor » действует на каждый бит операндов, устанавливая результат в « 1 », если соответствующие биты в обоих операндах различны, и в «0», если биты операндов совпадают. Если один операнд меньше другого, меньший операнд дополняется « 0 » в крайних левых битах.

See also
Ключевое слово
Не ключевое слово
Ключевое слово «Or»
Ключевое слово Shl
Ключевое слово Shr

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Доступность функций

Доступные вам функции зависят от того, какое решение Altium вы используете: Altium Develop, Altium Agile Teams, Altium Agile Enterprise или Altium Designer (при активной подписке).

Если вы не видите описанную функцию в используемом вами программном обеспечении, свяжитесь с отделом продаж Altium, чтобы узнать больше.

Устаревшая документация

Документация Altium Designer больше не разделена по версиям ПО. Если вам необходим доступ к документации по старым версиям Altium Designer, посетите раздел Устаревшая документация на странице Прочие установщики.

Content