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.

Para obtener información más detallada sobre las diferencias entre DelphiScript y el lenguaje de programación Delphi, consulte la página Diferencias entre DelphiScript y Delphi.

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

Declaration
El operador And realiza una operación lógica/bit a bit And.

Description
El operador And realiza una operación lógica si los operandos son de tipo booleano, o una operación bit a bit And si los operandos son enteros.

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
Palabra clave Or
Palabra clave Xor

Array

Declaration
Array [index range];

Description
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 no es compatible.

Example:

var x : array [1..2]; 

Begin

Declaration
Begin
  statement
End;

Description
La palabra clave begin inicia un bloque en el script. Un bloque es el cuerpo principal de un script y puede contener cualquier número de sentencias, y puede utilizarse en cualquier lugar donde se requiera una sola sentencia, como el cuerpo de una sentencia condicional o de bucle.

Example:

Var
  Test : Integer;
Begin
  Test := Test + 4;
  ShowMessage(IntToStr(Test));
End;

See also
Palabra clave End

Break

Declaration
Break;

Description
Una sentencia Break sale de un bucle, de forma similar a una sentencia Goto.

Example:

While Condition Do
Begin
  DoSomething;
  Begin
    If AnotherCondition Then
      Break;
  End;
End;

See also
Palabra clave While
Palabra clave Continue
Palabra clave Do
Palabra clave Repeat

Case

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

Description
Las sentencias Case seleccionan una rama entre muchas posibles, dependiendo del valor de la expresión.

En muchas situaciones, un conjunto complejo de sentencias If puede simplificarse reemplazándolo por sentencias Case. Una sentencia case en una expresión se utiliza para seleccionar un valor, una lista de valores posibles o un rango de valores. En una sentencia case se pueden utilizar cualesquiera tipos porque DelphiScript es un lenguaje sin tipos. Las sentencias Case pueden tener una sentencia else que se ejecuta si ninguna de las etiquetas corresponde al valor del selector (dentro de la condición 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
Palabra clave OfContinue

Declaration
Continue

Description
La sentencia Continue salta el cuerpo de un bucle, de forma similar a la sentencia 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
Palabra clave Break
Palabra clave While
Palabra clave Continue
Palabra clave Do
Palabra clave Repeat

Const

Declaration
Const
Name = Expression;

Description
La palabra clave Const especifica cualquier expresión de valor constante como el valor de una constante. Si intenta modificar en el script la expresión que es de tipo const, el sistema de scripting generará un error de identificador no declarado.

Example:

Const
  b = 30;
Begin
  ShowMessage(IntTtStr(b));
End;

Un intento de cambiar el valor del parámetro b const generará un error, por ejemplo:

Const
  b = 30;
Begin
  b := 40;
  ShowMessage(IntToStr(b));
End;

Div

Declaration
dividend div divisor

Description
El operador Div realiza una división entera que descarta los resultados fraccionarios sin redondear. Si el divisor es cero, DelphiScript informa un error.

See also
Operador Mod
Operador Div

Do

Declaration

  • For variable := expression1 to expression2 do sentencia
  • While expression do sentencia
  • With expression do sentencia.

Description
La palabra clave Do forma parte de las sentencias For, While and With de DelphiScript.

Example:

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

See also
Palabra clave For
Palabra clave To
Palabra clave While
Palabra clave With
Palabra clave DownTo

DownTo

Declaration
For variable := expression1 DownTo expression2 Do statement.

Description
Use DownTo en un bucle For para contar hacia atrás.

See also
Palabra clave For
Palabra clave To
Palabra clave Do

Else

Declaration

  • If condition then statement Else statement
  • Try statement except exception Else statement end
  • Case expression of Else end;

Description
La palabra clave Else introduce la parte final genérica de varias sentencias. Tenga en cuenta que la parte else de una sentencia if va seguida de una sola sentencia, pero la parte else de las sentencias try-except y case puede tener múltiples sentencias.

See also
Palabra clave If
Palabra clave Then
Palabra clave Try
Palabra clave 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
La palabra clave End finaliza un bloque o una parte múltiple, como declaraciones, sentencias Case, etc.

See also
Palabra clave Begin
Palabra clave Case
Palabra clave Try

Except

Declaration
Try statements Except statements End;

Description
Utilice bloques Try-Except para manejar casos excepcionales, por ejemplo, para capturar excepciones específicas y hacer algo útil con ellas, como agregarlas a un registro de errores o crear un cuadro de diálogo amigable. Dado que la palabra clave On no es compatible con DelphiScript, use la sentencia Raise dentro del bloque Except e informe únicamente un mensaje de texto.

Example:

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

See also
Palabra clave End
Palabra clave Finally
Palabra clave Try

Finally

Declaration
Try statements... Finally statements... End;

Description
La palabra clave finally inicia la parte finally de un bloque try-finally. Las sentencias del bloque finally siempre se ejecutan, sin importar cómo el control salga del bloque try: por excepción, salida o break. Se recomienda el uso del bloque try-finally al tratar con la creación/destrucción de objetos y File IO.

See also
Palabra clave End
Palabra clave Raise
Palabra clave Try

For

Declaration

  • for variable := expression1 to expression2 do statement
  • for variable := expression1 downto expression2 do statement

Description
Un bucle for evalúa las expresiones que especifican los límites de este bucle y luego ejecuta el cuerpo del bucle repetidamente mediante la variable de control del bucle, que se actualiza después de cada iteración.

Example:

For i := 0 to AnIndex - 1 Do
Begin
  S := S + #13 + AString;
End;
ShowMessage(S);

See also
Palabra clave Do
Palabra clave DownTo
Palabra clave Repeat
Palabra clave To
Palabra clave While
Palabra clave With

Forward

Declaration
subroutine header; forward;

Description
La directiva Forward permite declarar una función o procedimiento antes de que sea llamada, declarando el encabezado (nombre, parámetros y tipo de retorno) con la directiva forward.

Function

Declaration
Function name (parameters) : return type;

Description
Una Function es una subrutina que devuelve un valor. Tenga en cuenta que no se permiten punteros a funciones en los scripts; es decir, no se pueden definir tipos funcionales. Las variables declaradas dentro de una función no son accesibles fuera de este procedimiento.

Example

Function TestFunc(Min, Max : integer) : integer;
Begin
  Result := Random(Max - Min +1);
End;

Goto

Declaration
goto label

Description
La sentencia goto transfiere el control a la etiqueta indicada. La etiqueta puede ser cualquier identificador o una cadena de dígitos de hasta cuatro cifras.

Example

Label StartHere;
// code
 
StartHere: //do anything;
 
Goto StartHere;

See also
Palabra clave Label

If

Declaration

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

Description
La condición para la palabra clave If debe ser una expresión booleana. La palabra clave Else es opcional.

Example

If A > B Then
    ShowMessage('X>Y and A > B');
Else
    ShowMessage('X>Y and A <=B');
End;

See also
Palabra clave And
Palabra clave Begin
Palabra clave Or
Palabra clave Then
Palabra clave Else

Interface

Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;

Description
La palabra clave interface permite acceder a un objeto existente en memoria e invocar los métodos del objeto. Una interfaz solo puede consistir en propiedades y métodos, sin datos. Dado que las interfaces no pueden contener datos, sus propiedades deben escribir y leer mediante métodos. Lo más importante es que las interfaces no tienen implementación, ya que solo definen un contrato para un objeto existente en memoria.

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.

Tenga cuidado con el otro uso de la palabra clave Interface, que se emplea para las secciones Interface/Implementation de una unidad de Embarcadero Delphi. Estas palabras clave Interface/Implementation pueden usarse en scripts, pero básicamente se ignoran cuando un script se ejecuta en Altium Designer.

Label

Declaration
label digits, identifier, ...;

Description
La palabra clave label declara una o más etiquetas. Una etiqueta puede ser una cadena de dígitos de hasta cuatro cifras o un identificador. Una etiqueta puede utilizarse en el mismo bloque para identificar una sentencia como destino de una sentencia goto.

Example:

Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;

See also
Palabra clave Goto

Mod

Declaration
Integer expression mod integer expression

Description
El operador mod realiza una operación de módulo entero o resto. El resultado de A mod B es A - (A div B) * B.

See also
Función Div

Nil

Declaration
const nil = pointer(0);

Description
La palabra clave nil es un valor especial de puntero que se garantiza que es distinto y que no apunta a nada.

Not

Declaration

  • not boolean expression
  • not integer expression

Description
El operador not realiza una negación. Si el operando es de tipo booleano, la negación es una negación lógica. Not False = True y not true = false. Si el operando es un entero, el operador not realiza una negación bit a bit de cada bit del valor entero; es decir, una operación de complemento.

Of

Declaration
case expression of
  selector: expression1
  ...
end

Description
La palabra clave Of se utiliza para la sentencia case.

See also
Sentencia Case

Or

Declaration

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

Description
El operador or realiza un Or lógico si los operandos son de tipo booleano, o un Or bit a bit si los operandos son enteros. Un Or lógico es falso solo si ambos operandos son falsos; en caso contrario, es verdadero cuando al menos uno de los operandos es verdadero.

See also
Palabra clave And
Palabra clave Not
Palabra clave Shl
Palabra clave Shr
Palabra clave Xor

Procedure

Declaration

  • Procedure name;
  • Procedure Name (Parameter, ...);

Description
La palabra clave procedure declara una subrutina que no tiene tipo de retorno. Las variables declaradas dentro de un procedimiento no son accesibles fuera de este procedimiento. Tenga en cuenta que esta palabra clave puede utilizarse, pero el sistema de scripting la ignora.

Example:

Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
  Rand := Random(Max);
End;

See also
Palabra clave Function

Program

Declaration
Program Name;
declarations...
Block

Description
La palabra clave program inicia un script. La extensión de archivo para un script es *.pas. Tenga en cuenta que esta palabra clave puede utilizarse, pero el sistema de scripting la ignora.

See also
Palabra clave FunctionRaise

Declaration
Raise statement;

Description
La palabra clave raise está relacionada con la palabra clave Try. La palabra clave Raise puede utilizarse sin parámetros para volver a lanzar la última excepción. También puede utilizarse con un parámetro de cadena para generar una excepción con un mensaje específico.

Example:

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

Tenga en cuenta que la palabra clave On no es compatible con DelphiScript, por lo que los objetos Exception no pueden usarse en scripts.

Repeat

Declaration
repeat
statements;
until boolean expression

Description
Las sentencias dentro de un bloque Repeat Until se ejecutan repetidamente hasta que la expresión booleana sea verdadera.

Example:

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

See also
Until keyword

Result

Declaration
Var result : Function return type;

Description
Toda función en un script debe usar la palabra clave Result para devolver un valor resultante. El tipo de la variable es el tipo de retorno de la función.

See also
Function keyword

Shl

Declaration
value shl bits

Description
El operador shl realiza un desplazamiento a la izquierda de un valor entero en Bits posiciones de bit. Los bits liberados se rellenan a la derecha con bits cero.

See also
And keyword
Not keyword
Or keyword
Shr keyword
Xor keyword

Shr

Declaration
value shr bits

Description
El operador shr realiza un desplazamiento a la derecha de un valor entero en Bits posiciones de bit. Los bits liberados se rellenan a la izquierda con bits cero.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Xor keyword

String

Declaration

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

Description
La palabra clave string representa el tipo de cadena.

Then

Declaration
If expression then statement

Description
La palabra clave Then forma parte de una sentencia If.
See also
If keyword

To

Declaration
For variable := expression1 to expression2 do statement

Description
La palabra clave to forma parte de un bucle for que cuenta en orden ascendente.

Example

For i := 0 to AnIndex - 1 do
  S := S + #13 + AString;

See also
Downto keyword
For keyword

Try

Declaration

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

Description
La palabra clave try introduce una sentencia try-except o una sentencia try-finally. Estas dos sentencias están relacionadas, pero tienen propósitos diferentes.

Try Finally
Las sentencias del bloque finally se ejecutan siempre, sin importar cómo salga el control del bloque try: excepción, Exit o Break. Use el bloque try-finally para liberar objetos temporales y otros recursos, y para realizar tareas de limpieza. Normalmente no necesita más de una sentencia try-finally en una subrutina.

Example:

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

Try Except
Use try-except para manejar casos excepcionales, por ejemplo, para capturar excepciones específicas y hacer algo útil con ellas, como agregarlas a un registro de errores o crear un cuadro de diálogo amigable. Dado que la palabra clave On no es compatible con DelphiScript, use la sentencia Raise dentro del bloque Except.

Example:

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

See also
Raise keyword

Type

Declaration
Type Name = type declaration ...

Description
La palabra clave Type declara el tipo de una variable. Dado que DelphiScript es un lenguaje sin tipos, no es necesario declarar variables de un tipo específico, pero esto puede hacerse por claridad en los scripts. Todas las variables de un script son siempre de tipo Variant. La principal limitación al escribir scripts es que no puede declarar registros ni clases.

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:

Example:
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.

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 keyword

Unit

Declaration

  • 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 introduce una unidad, que es el módulo básico de un script. Tenga en cuenta que esta palabra clave puede usarse, pero el sistema de scripting la ignora.

See also
Function keyword
Program keyword

Until

Declaration
Repeat
Statements;
Until boolean expression

Description
La palabra clave until marca el final del bloque Repeat-Until. Las sentencias dentro de un bloque Repeat-Until se ejecutan repetidamente hasta que la expresión booleana sea verdadera.

Example:

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

See also
Repeat keyword

Uses

Declaration
Uses Unit Name, ...;

Description
La palabra clave uses enumera los nombres de las unidades que se importan en la unidad circundante. La declaración uses es opcional porque el sistema de scripting admite unidades importadas en Altium Designer. Puede incluir la declaración uses por motivos de legibilidad.

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.

See also

Var

Declaration
Name : Type
Name : Type = Expression;

DelphiScript Variables
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;

Array elements
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];

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
La sentencia while ejecuta repetidamente la sentencia mientras la expresión sea verdadera.

See also
Break keyword
Continue keyword
Do keyword
DownTo keyword
For keyword
Repeat keyword
To keyword
With keyword

With

Declaration
with expression do statement

Description
La sentencia With agrega una referencia a un registro, objeto, clase o interfaz al ámbito para la resolución de nombres de símbolos.

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 keyword

Xor

Declaration

  • expresión booleana Xor expresión booleana
  • integer expression Xor integer expression

Description
El operador xor realiza un Or exclusivo sobre sus operandos. Si los operandos son de tipo booleano, devuelve un resultado booleano: true si los operandos son diferentes y false si son iguales.

Un xor entero opera sobre cada bit de sus operandos, estableciendo el bit del resultado en 1 si los bits correspondientes en ambos operandos son diferentes, y en 0 si ambos operandos tienen bits idénticos. Si un operando es más pequeño que el otro, el operando más pequeño se extiende con 0 en los bits más a la izquierda.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Shr keyword

AI-LocalizedLocalizado por IA
Si encuentra un problema, seleccione el texto/imagen y presioneCtrl + Enterpara enviarnos sus comentarios.
Disponibilidad de funciones

Las funciones disponibles dependen de la solución de Altium que tenga: Altium Develop, una edición de Altium Agile (Agile Teams o Agile Enterprise), o Altium Designer (con suscripción activa).

Si no ve alguna función mencionada en su software, contacte con Ventas de Altium para obtener más información.

Documentación heredada

La documentación de Altium Designer ya no está versionada. Si necesita acceder a la documentación de versiones anteriores de Altium Designer, visite la sección Documentación heredada de la página de Otros instaladores.

Contenido