Instructions et opérateurs
Instructions DelphiScript
Une instruction en DelphiScript est considérée comme « simple » lorsqu'elle ne contient aucune autre instruction. Les instructions d'affectation et les appels de procédure sont des exemples d'instructions simples.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Une instruction composée est constituée de plusieurs instructions.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Instructions conditionnelles
DelphiScript dispose d'instructions de contrôle qui influencent le déroulement de l'exécution au sein d'un script. L'instruction de contrôle la plus courante est l' If..Then
Instruction If Then
L' If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Instruction « Case Of »
Pour éviter un ensemble complexe d’ IfCase
Tous les types peuvent être utilisés dans une instruction Case, car DelphiScript est un langage non typé. Les instructions Case peuvent comporter une instruction Else qui est exécutée si aucune des étiquettes ne correspond à la valeur du sélecteur (au sein de la condition 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;
Instruction With
L' With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Boucle « For To Do »
L' For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Boucle « Repeat Until »
L’ RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Boucle « While Do »
Une WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Instruction « 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;
Instruction « Goto Label »
L' GotoGoto labellabel: statement
Un étiquette peut être n'importe quel identifiant valide. La déclaration de l'étiquette et l' Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Instruction Exit
L' ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Instruction 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;
Opérateurs d’expression DelphiScript
En général, une expression est une combinaison valide de constantes, de variables, de valeurs littérales, d’opérateurs et de résultats de fonctions. Les expressions servent à déterminer la valeur à attribuer à une variable, à calculer le paramètre d’une fonction ou à vérifier une condition. Les expressions peuvent inclure des appels de fonction.
DelphiScript dispose d’un certain nombre d’opérateurs logiques, arithmétiques, booléens et relationnels. Ces opérateurs sont regroupés selon leur ordre de priorité (voir ci-dessous), qui diffère des ordres de priorité utilisés par Basic, C, etc. Par exemple, l’opérateur ANDOR
Si vous écrivez aAND(a
Les opérateurs DelphiScript pris en charge, répertoriés ci-dessous, sont classés par ordre de priorité.
Opérateurs classés par ordre de priorité
Notez que les opérateurs unaires ont la priorité la plus élevée.
|
NOT booléen ou bit à bit. |
* |
Multiplication arithmétique. |
|
Division en virgule flottante. |
|
Division d'entiers. |
|
Module (reste de la division entière). |
|
ET booléen ou binaire. |
|
Décalage à gauche bit à bit. |
|
Décalage à droite bit à bit. |
|
Addition arithmétique, concaténation de chaînes de caractères. |
- |
Soustraction arithmétique. |
|
OU booléen ou bit à bit |
|
OU booléen ou OU EXCLUSIF binaire. |
|
Vérifier si les valeurs sont égales ou non. |
|
Vérifier si les valeurs ne sont pas égales. |
Vérifier si la valeur est inférieure ou non. |
|
|
Vérifier si la valeur est supérieure ou non. |
|
Vérifie si la valeur est inférieure ou égale à une autre ou non. |
|
Vérifier si la valeur est supérieure ou égale ou non. |
Notez également que le ^@