Wyrażenia i operatory
Instrukcje w DelphiScript
Instrukcja w języku DelphiScript jest uznawana za „prostą”, jeśli nie zawiera żadnych innych instrukcji. Przykładami prostych instrukcji są instrukcje przypisania i wywołania procedur.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Instrukcja złożona składa się z wielu instrukcji.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Instrukcje warunkowe
DelphiScript posiada instrukcje sterujące, które wpływają na przebieg wykonywania skryptu. Najpopularniejszą instrukcją sterującą jest If..Then
Instrukcja If Then
Instrukcja If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Instrukcja „Case Of”
Aby uniknąć złożonego zestawu IfCase
W instrukcji Case można używać dowolnych typów, ponieważ DelphiScript jest językiem beztypowym. Instrukcje Case mogą zawierać instrukcję Else, która jest wykonywana, jeśli żadna z etykiet nie odpowiada wartości selektora (w ramach warunku 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;
Instrukcja With
Instrukcja With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
Pętla For To Do
Pętla For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Pętla „Repeat Until”
Instrukcja RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Pętla „While Do”
Instrukcja WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Instrukcja „Continue”
Instrukcja 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;
Instrukcja goto z etykietą
Instrukcja GotoGoto labellabel: statement
Etykietą może być dowolny prawidłowy identyfikator. Deklaracja etykiety oraz Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Instrukcja Exit
Instrukcja ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Instrukcja break
Instrukcja 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;
Operatory wyrażeń w DelphiScript
Ogólnie rzecz biorąc, wyrażenie to poprawna kombinacja stałych, zmiennych, wartości literałowych, operatorów i wyników funkcji. Wyrażenia służą do określania wartości, jaką należy przypisać do zmiennej, do obliczania parametru funkcji lub do sprawdzania warunku. Wyrażenia mogą zawierać wywołania funkcji.
DelphiScript posiada szereg operatorów logicznych, arytmetycznych, boolowskich i relacyjnych. Operatorzy ci są pogrupowani według kolejności pierwszeństwa (patrz poniżej), która różni się od kolejności pierwszeństwa stosowanej w językach Basic, C itp. Na przykład operator ANDOR
Jeśli napiszesz aAND(a
Obsługiwane operatory DelphiScript wymienione poniżej są przedstawione według ich kolejności pierwszeństwa.
Operatory pogrupowane według pierwszeństwa
Należy pamiętać, że najwyższy priorytet mają operatory jednoargumentowe.
|
Logiczne lub bitowe NOT. |
* |
Mnożenie arytmetyczne. |
|
Dzielenie zmiennoprzecinkowe. |
|
Dzielenie liczb całkowitych. |
|
Moduł (reszta z dzielenia całkowitoliczbowego). |
|
Logiczne lub bitowe „AND”. |
|
Przesunięcie bitowe w lewo. |
|
Przesunięcie bitowe w prawo. |
|
Dodawanie arytmetyczne, konkatenacja ciągów znaków. |
- |
Odejmowanie arytmetyczne. |
|
Logiczne lub bitowe OR |
|
Logiczne „lub” (bitowe „wykluczające OR”). |
|
Sprawdź, czy są równe, czy nie. |
|
Sprawdź, czy nie jest równe. |
Sprawdź, czy jest mniejsze, czy nie. |
|
|
Sprawdź, czy jest większe, czy nie. |
|
Sprawdź, czy jest mniejsze lub równe, czy nie. |
|
Sprawdź, czy jest większe lub równe, czy nie. |
Należy również pamiętać, że ^@