Espressioni e operatori
Istruzioni DelphiScript
Un'istruzione in DelphiScript è considerata "semplice" quando non contiene altre istruzioni. Esempi di istruzioni semplici sono le istruzioni di assegnazione e le chiamate a procedure.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Un'istruzione composta è costituita da più istruzioni.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Istruzioni condizionali
DelphiScript dispone di istruzioni di controllo che influenzano il flusso di esecuzione all'interno di uno script. L'istruzione di controllo più comune è l' If..Then
Istruzione If Then
L' If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Istruzione Case Of
Per evitare una serie complessa di IfCase
In un'istruzione Case è possibile utilizzare qualsiasi tipo, poiché DelphiScript è un linguaggio non tipizzato. Le istruzioni Case possono includere un'istruzione Else che viene eseguita se nessuna delle etichette corrisponde al valore del selettore (all'interno della condizione 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;
Istruzione With
L' With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Ciclo For To Do
L' For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Ciclo Repeat Until
L’ RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Ciclo While Do
Un’ WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Istruzione Continue
L' 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;
Istruzione Goto Label
L' GotoGoto labellabel: statement
Un'etichetta può essere qualsiasi identificatore valido. La dichiarazione dell'etichetta e l' Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Istruzione Exit
L' ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Istruzione Break
L' 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;
Operatori delle espressioni in DelphiScript
In generale, un'espressione è una combinazione valida di costanti, variabili, valori letterali, operatori e risultati di funzioni. Le espressioni vengono utilizzate per determinare il valore da assegnare a una variabile, per calcolare il parametro di una funzione o per verificare una condizione. Le espressioni possono includere chiamate a funzioni.
DelphiScript dispone di una serie di operatori logici, aritmetici, booleani e relazionali. Questi operatori sono raggruppati in base all’ordine di precedenza (vedi sotto), che è diverso dagli ordini di precedenza utilizzati da Basic, C, ecc. Ad esempio, l’ ANDOR
Se si scrive aAND(a
Gli operatori DelphiScript supportati elencati di seguito sono riportati in ordine di precedenza.
Operatori raggruppati per precedenza
Si noti che gli operatori unari hanno la massima precedenza.
|
NOT booleano o bit a bit. |
* |
Moltiplicazione aritmetica. |
|
Divisione in virgola mobile. |
|
Divisione intera. |
|
Modulo (resto della divisione intera). |
|
AND booleano o bit a bit. |
|
Spostamento a sinistra bit a bit. |
|
Spostamento a destra bit a bit. |
|
Addizione aritmetica, concatenazione di stringhe. |
- |
Sottrazione aritmetica. |
|
OR booleano o bit a bit |
|
OR booleano o OR bit a bit ESCLUSIVO. |
|
Verifica se sono uguali o meno. |
|
Verifica se non è uguale o meno. |
Verifica se è minore o meno. |
|
|
Verifica se è maggiore o meno. |
|
Verifica se è minore o uguale o meno. |
|
Verifica se è maggiore o uguale o meno. |
Si noti inoltre che il ^@