Palabras clave
Esta referencia cubre las palabras clave de DelphiScript utilizadas por el sistema de scripting en Altium Designer. El sistema de scripting admite el lenguaje DelphiScript, que es muy similar al lenguaje de programación Embarcadero Delphi™. La diferencia principal es que DelphiScript es un lenguaje de scripting sin tipos.
En esta sección se describen las palabras clave comunes de DelphiScript con información detallada y ejemplos. Para obtener más información sobre palabras clave, como rutinas de manejo de archivos Delphi, matemáticas y cadenas, consulte Funciones y la Referencia de Embarcadero Delphi.
And
El operador And
El operador 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;
Palabra clave Or
Palabra clave Xor
Array
Array [index range];
Dado que el lenguaje DelphiScript no tiene tipos, es necesario especificar el tamaño o el rango de un arreglo. Aun así, se puede definir qué tipo de elementos puede contener el arreglo, aunque no es necesario. La declaración Open array
var x : array [1..2];
Begin
Begin
statement
End;
La palabra clave begin
Var Test : Integer; Begin Test := Test + 4; ShowMessage(IntToStr(Test)); End;
Palabra clave End
Break
Break;
Una sentencia BreakGoto
While Condition Do Begin DoSomething; Begin If AnotherCondition Then Break; End; End;
Palabra clave While
Palabra clave Continue
Palabra clave Do
Palabra clave Repeat
Case
Case expression Of
Value range : Expression;
Else Expression;
End;
Las sentencias Case
En muchas situaciones, un conjunto complejo de sentencias IfCasecasecaseCaseelseCase Of
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;
Palabra clave Of
Continue
La sentencia ContinueGoto
Var I := 0; s:= 1; Begin While True Do Begin S := S \* 2; I := I \\+ 1; If I <> 4 then continue; Break; End;
Palabra clave Break
Palabra clave While
Palabra clave Continue
Palabra clave Do
Palabra clave Repeat
Const
Const
Name = Expression;
La palabra clave Constconst
Const b = 30; Begin ShowMessage(IntTtStr(b)); End;
Un intento de cambiar el valor del parámetro b const
Const b = 30; Begin b := 40; ShowMessage(IntToStr(b)); End;
Div
dividend div divisor
El operador Div
Operador Mod
Operador Div
Do
-
sentenciaFor variable := expression1 to expression2 do -
sentenciaWhile expression do -
sentencia.With expression do
La palabra clave DoFor, While and With
For i := 0 To AnIndex - 1 Do S := S + #13 + AString;
Palabra clave For
Palabra clave To
Palabra clave While
Palabra clave With
Palabra clave DownTo
DownTo
For variable := expression1 DownTo expression2 Do statement.
Use DownToFor
Palabra clave For
Palabra clave To
Palabra clave Do
Else
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
La palabra clave Elseelseifelsetry-exceptcase
Palabra clave If
Palabra clave Then
Palabra clave Try
Palabra clave 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;
La palabra clave EndCase
Palabra clave Begin
Palabra clave Case
Palabra clave Try
Except
Try statements Except statements End;
Utilice bloques Try-ExceptOnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Palabra clave End
Palabra clave Finally
Palabra clave Try
Finally
Try statements... Finally statements... End;
La palabra clave finallytry-finallyfinallytrytry-finally
Palabra clave End
Palabra clave Raise
Palabra clave Try
For
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
Un bucle for
For i := 0 to AnIndex - 1 Do Begin S := S + #13 + AString; End; ShowMessage(S);
Palabra clave Do
Palabra clave DownTo
Palabra clave Repeat
Palabra clave To
Palabra clave While
Palabra clave With
Forward
subroutine header; forward;
La directiva Forwardforward
Function
Function name (parameters) : return type;
Una Function
Function TestFunc(Min, Max : integer) : integer; Begin Result := Random(Max - Min +1); End;
Goto
goto label
La sentencia goto
Label StartHere; // code StartHere: //do anything; Goto StartHere;
Palabra clave Label
If
-
if condition then statement; -
if condition then statement1 else statement2;
La condición para la palabra clave IfElse
If A > B Then ShowMessage('X>Y and A > B'); Else ShowMessage('X>Y and A <=B'); End;
Palabra clave And
Palabra clave Begin
Palabra clave Or
Palabra clave Then
Palabra clave Else
Interface
Interface
// Globally unique identifier string.
Methods
Properties
End;
La palabra clave interface
Una interfaz puede considerarse como un punto de contacto con un objeto existente en la memoria del equipo y ofrece la capacidad de leer/escribir datos a través de las propiedades de la interfaz. La interfaz solicita datos a su objeto asociado.
DelphiScript es un lenguaje sin tipos; por lo tanto, no puede definir nuevos tipos, como nuevos registros, arreglos o clases, ni interfaces asociadas.
Label
label digits, identifier, ...;
La palabra clave labelgoto
Label StartHere; // code StartHere: //do anything; Goto StartHere;
Palabra clave Goto
Mod
Integer expression mod integer expression
El operador modA mod BA - (A div B) * B
Función Div
Nil
const nil = pointer(0);
La palabra clave nil
Not
-
not boolean expression -
not integer expression
El operador notNot False = Truenot true = falsenot
Of
case expression of
selector: expression1
...
end
La palabra clave Ofcase
Sentencia Case
Or
-
boolean expression or boolean expression -
integer expression or integer expression
El operador or
Palabra clave And
Palabra clave Not
Palabra clave Shl
Palabra clave Shr
Palabra clave Xor
Procedure
-
Procedure name; -
Procedure Name (Parameter, ...);
La palabra clave procedure
Procedure TestRand(Var Rand: Integer; Max : Integer); Begin Rand := Random(Max); End;
Palabra clave Function
Program
Program Name;
declarations...
Block
La palabra clave program*.pas
Palabra clave Function
Raise statement;
La palabra clave raiseTryRaise
Raise(Format('Invalid Value Entered : %d', \[Height]));
Tenga en cuenta que la palabra clave OnException
Repeat
repeat
statements;
until boolean expression
Las sentencias dentro de un bloque Repeat Until
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I <= 9);
Until keyword
Result
Var result : Function return type;
Toda función en un script debe usar la palabra clave Result
Function keyword
Shl
value shl bits
El operador shlBits
And keyword
Not keyword
Or keyword
Shr keyword
Xor keyword
Shr
value shr bits
El operador shrBits
And keyword
Not keyword
Or keyword
Shl keyword
Xor keyword
String
-
type string; -
type Name = string[Constant]
La palabra clave string
Then
If expression then statement
La palabra clave ThenIf
If keyword
To
For variable := expression1 to expression2 do statement
La palabra clave tofor
For i := 0 to AnIndex - 1 do S := S + #13 + AString;
Downto keyword
For keyword
Try
-
Try statements finally statements end; -
Try statements except statements end;
La palabra clave trytry-excepttry-finally
Las sentencias del bloque finallytry-finallytry-finally
Reset(F); Try ... // process file F Finally CloseFile(F); End;
Use try-exceptOnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Raise keyword
Type
Type Name = type declaration ...
La palabra clave Type
El cambio de tipo se ignora en los scripts, por lo que los tipos en la declaración de variables se ignoran y pueden omitirse. Por lo tanto, estas declaraciones son correctas:
var a : integer;
var b : integer;
var c, d;
Los tipos de los parámetros en la declaración de procedure/function se ignoran y pueden omitirse. Por ejemplo, este código es correcto:
Function sum(a, b) : integer; Begin Result := a + b; End;
En general, las variantes pueden usarse para almacenar cualquier tipo de datos y realizar numerosas operaciones y conversiones de tipo. Una variante se comprueba y se calcula en tiempo de ejecución. El compilador no advertirá sobre posibles errores en el código, que solo pueden detectarse con pruebas exhaustivas. En conjunto, las porciones de código que usan variantes pueden considerarse código interpretado, porque muchas operaciones no pueden resolverse hasta el tiempo de ejecución. Esto puede afectar la velocidad del código.
Var V Begin // you can assign to it values of several different types: V := 10; V := 'Hello, World'; V := 45.55; End;
Var keyword
Unit
-
Unit Name;
interface
declarations
implementation
declarations
statements
Initialization
statements
finalization
statements
end.
-
Unit Name;
interface
declarations
implementation
declarations
statements
begin
statements
end.
La palabra clave unit
Function keyword
Program keyword
Until
Repeat
Statements;
Until boolean expression
La palabra clave untilRepeat-UntilRepeat-Until
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I <= 9);
Repeat keyword
Uses
Uses Unit Name, ...;
La palabra clave usesuses
Todas las unidades almacenadas dentro del mismo proyecto pueden acceder a variables globales de cualquiera de esas unidades. Tenga esto en cuenta al declarar variables en unidades dentro del mismo proyecto.
Las API Client, PCB, Schematic y WorkSpace Manager de Altium Designer, así como SysUtils, Classes y otras unidades de Delphi, se importan y están disponibles para su uso en scripts; por lo tanto, no hay una necesidad específica de declarar estas unidades en los scripts.
Para obtener información más detallada sobre la API de Altium Designer, consulte la documentación de Using the Altium Designer API.
Var
Name : Type
Name : Type = Expression;
Todas las variables de un script son siempre de tipo Variant. El cambio de tipo se ignora. Los tipos en la declaración de variables se ignoran y pueden omitirse, por lo que estas declaraciones son correctas:
Var a : integer;
Var b : integer;
Var c, d;
Los tipos de los parámetros en la declaración de procedure/function se ignoran y pueden omitirse. Por ejemplo, este código es correcto:
Function sum(a, b) : integer; Begin Result := a + b; End;
En general, las variantes pueden usarse para almacenar cualquier tipo de datos y realizar numerosas operaciones y conversiones de tipo. Una variante se comprueba y se calcula en tiempo de ejecución. El compilador no advertirá sobre posibles errores en el código, que solo pueden detectarse con pruebas exhaustivas. En conjunto, las porciones de código que usan variantes pueden considerarse código interpretado, porque muchas operaciones no pueden resolverse hasta el tiempo de ejecución. Esto puede afectar la velocidad del código.
Declaración de una variable variant:
Var V; Begin // you can assign to it values of several different types: V := 10; V := 'Hello, World'; V := 45.55; End;
el tipo de los elementos del arreglo se ignora y puede omitirse, por lo que estas declaraciones son equivalentes:
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
La sentencia while
Break keyword
Continue keyword
Do keyword
DownTo keyword
For keyword
Repeat keyword
To keyword
With keyword
With
with expression do statement
La sentencia With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Do keyword
Xor
- expresión booleana Xor expresión booleana
-
integer expression Xor integer expression
El operador xor
Un xor10
And keyword
Not keyword
Or keyword
Shl keyword
Shr keyword