Expresiones y operadores

Instrucciones de DelphiScript

Una instrucción en DelphiScript se considera «simple» cuando no contiene ninguna otra instrucción. Algunos ejemplos de instrucciones simples son las instrucciones de asignación y las llamadas a procedimientos.

Simple statements:

X := Y + 10; // assignment

ShowMessage('Hello World!'); // procedure call

Una instrucción compuesta está formada por varias instrucciones.

Compound statements:

Begin
  If A > B Then ShowMessage('A is bigger');
  Else ShowMessage('B is bigger');
  A := 0;
  B := 0;
End;

En DelphiScript, cuando se asignan valores a variables, se utiliza el operador «dos puntos igual»: :=

Para comprobar la igualdad, se utiliza el operador de igualdad: =

Instrucciones condicionales

DelphiScript cuenta con sentencias de control que afectan al flujo de ejecución dentro de un script. La sentencia de control más habitual es la If..Then instrucción condicional.

Sentencia «If Then»

La If..Then instrucción se utiliza para el control condicional. La sintaxis es:

If Condition Then
  Begin
  // code here
  End
Else
  Begin
  // code here
  End;

Sentencia «Case Of»

Para evitar un conjunto complejo de If instrucciones, a menudo se pueden sustituir por Case instrucciones. Una instrucción «Case» en una expresión se utiliza para seleccionar un valor, una lista de valores posibles o un rango de valores.

En una instrucción «Case» se puede utilizar cualquier tipo, ya que DelphiScript es un lenguaje sin tipos. Las instrucciones «Case» pueden incluir una instrucción «Else» que se ejecuta si ninguna de las etiquetas se corresponde con el 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;

Sentencia «With»

La With es una forma abreviada de DelphiScript. Al hacer referencia a una variable de tipo registro (o a un objeto), se puede utilizar una instrucción «with» en lugar de repetir su nombre cada vez.

Normal version:

Form.Canvas.Pen.Width := 2;
Form.Canvas.Pen.Color := clSilver;

Version using With:

With Form.Canvas.Pen do
Begin
  Width := 2;
  Color := clSilver;
End;

Bucle «For To Do»

La For..To..Do instrucción proporciona un método para recorrer repetidamente un bloque de código (una o más líneas de código). La sintaxis básica es:

For counter := start To end Do
Begin
  // code here
End;

For Los bucles «with» se utilizan a menudo para inicializar una matriz. La dirección del contador en un For..To..Do bucle puede controlarse utilizando alternativamente la DownTo para decrementar el bucle. DelphiScript proporciona la instrucción Break/Exit para salir de un For..To..Do bucle antes de tiempo.

Bucle «Repeat Until»

La Repeat instrucción se ejecuta repetidamente hasta que la expresión booleana sea verdadera. La Repeat instrucción siempre se ejecuta al menos una vez.

Example:

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

Bucle «While Do»

Una While es similar a una Repeat , salvo que la condición de control se evalúa antes de la primera ejecución de la secuencia de instrucciones. Por lo tanto, si la condición es falsa, la secuencia de instrucciones nunca se ejecuta.

Example:

Randomize;
I := 0;
While I  1000 do
Begin
  I := I + Random (100);
  Add ('Random Number: ' + IntToStr (I));
End;

Instrucción «Continue»

La Continue saltar el cuerpo de un bucle, de forma similar a la Goto . La instrucción «continue» hace que el script en ejecución pase a la siguiente iteración del For, While o Repeat .

Example:

var
  F: File;
  i: Integer;
Begin
  For i := 0 to (FileListBox1.Items.Count - 1) do
  Begin
    Try
    If FileListBox1.Selected[i] Then
    Begin
      If not FileExists(FileListBox1.Items.Strings[i]) then
      Begin
        MessageDlg('File: ' + FileListBox1.Items.Strings[i] + 'not found', mtError, [mbOk], 0);
        Continue;
      End;
      AssignFile(F, FileListBox1.Items.Strings[i]);
      Reset(F, 1);
      ListBox1.Items.Add(IntToStr(FileSize(F)));
      CloseFile(F);
    End;
    Finally
      { do something here }
    End;
  End;
End;

Instrucción «goto label»

La Goto instrucción tiene la forma Goto label que transfiere la ejecución del script a la instrucción marcada por la etiqueta especificada. Para marcar una instrucción, primero hay que declarar la etiqueta y, a continuación, la instrucción de destino precedida de la etiqueta y dos puntos: label: statement

Una etiqueta puede ser cualquier identificador válido. La declaración de la etiqueta y Goto la instrucción deben pertenecer al mismo bloque de código dentro de un script. Por lo tanto, no es posible saltar dentro o fuera de un procedimiento o una función.

Example:

Label StartHere;
  // code
StartHere: Beep;
Goto StartHere;

Instrucción «Exit»

La Exit instrucción hace que se salga inmediatamente de una función o procedimiento. Si se llama a Exit desde dentro de un Try..Finally bloque, la Finally parte se ejecuta antes de que la subrutina devuelva el valor. Si el Exit procedimiento se invoca desde el cuerpo principal del script, la ejecución de este terminará.

Example:

Begin
  Server := SchServer;
  If Server = Nil Then
  Begin
    ShowError('No SchServer started');
    Exit;
End;

Instrucción «Break»

La Break instrucción hace que el script en ejecución salga del For, While o Repeat . La ejecución del script continúa a partir de la línea ejecutable siguiente al bucle actual.

Example:

Var
  S: string;
Begin
  While True do
  Begin
    ReadLn(S);
    Try
      if S = '' then Break;
      WriteLn(S);
    Finally
      { do something for all cases }
    End;
  End;
End;

Operadores de expresiones de DelphiScript

En general, una expresión es una combinación válida de constantes, variables, valores literales, operadores y resultados de funciones. Las expresiones se utilizan para determinar el valor que se va a asignar a una variable, para calcular el parámetro de una función o para comprobar una condición. Las expresiones pueden incluir llamadas a funciones.

DelphiScript cuenta con varios operadores lógicos, aritméticos, booleanos y relacionales. Estos operadores se agrupan según su orden de precedencia (véase más abajo), que difiere de los órdenes de precedencia utilizados por Basic, C, etc. Por ejemplo, el AND y OR tienen mayor precedencia que el relacional.

Si escribes a, DelphiScript realizará primero la AND operación primero, lo que provocará un error. Para evitar este problema y definir la prioridad, cada expresión debe ir entre paréntesis: (a;

Los operadores de DelphiScript compatibles que se enumeran a continuación se muestran por orden de precedencia.

Operadores agrupados por orden de precedencia

Tenga en cuenta que los operadores unarios tienen la máxima prioridad.

Not

NOT booleano o bit a bit.

Multiplicative and Bitwise Operators

*

Multiplicación aritmética.

/

División de coma flotante.

div

División de enteros.

mod

Módulo (resto de la división entera).

and

Y booleano o bit a bit.

shl

Desplazamiento a la izquierda bit a bit.

shr

Desplazamiento a la derecha de bits.

Additive Operators

+

Suma aritmética, concatenación de cadenas.

-

Resta aritmética.

or

OR booleano o bit a bit

xor

OR booleano o OR bit a bit EXCLUSIVO.

Relational and Comparison Operators (lowest precedence)

=

Comprobar si son iguales o no.

>

Comprobar si no son iguales.

Comprobar si es menor que o no.

>

Comprueba si es mayor que o no.

=

Comprueba si es menor o igual que o no.

>=

Comprueba si es mayor o igual que o no.

Ten en cuenta también que el ^ y @ no son compatibles con DelphiScript.

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

Las funciones disponibles para usted dependen de qué solución de Altium tenga: Altium Develop, Altium Agile Teams, Altium Agile Enterprise o Altium Designer (con suscripción activa).

Si no ve una función documentada en su software actual, 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