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.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Una instrucción compuesta está formada por varias instrucciones.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
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
Sentencia «If Then»
La If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Sentencia «Case Of»
Para evitar un conjunto complejo de IfCase
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»).
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;
Sentencia «With»
La With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Bucle «For To Do»
La For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Bucle «Repeat Until»
La RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Bucle «While Do»
Una WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Instrucción «Continue»
La ContinueGotoForWhileRepeat
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 GotoGoto labellabel: statement
Una etiqueta puede ser cualquier identificador válido. La declaración de la etiqueta y Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Instrucción «Exit»
La ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Instrucción «Break»
La BreakForWhileRepeat
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 ANDOR
Si escribes aAND(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 booleano o bit a bit. |
* |
Multiplicación aritmética. |
|
División de coma flotante. |
|
División de enteros. |
|
Módulo (resto de la división entera). |
|
Y booleano o bit a bit. |
|
Desplazamiento a la izquierda bit a bit. |
|
Desplazamiento a la derecha de bits. |
|
Suma aritmética, concatenación de cadenas. |
- |
Resta aritmética. |
|
OR booleano o bit a bit |
|
OR booleano o OR bit a bit EXCLUSIVO. |
|
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 ^@