Anweisungen und Operatoren
DelphiScript-Anweisungen
Eine Anweisung in DelphiScript gilt als „einfach“, wenn sie keine weiteren Anweisungen enthält. Beispiele für einfache Anweisungen sind Zuweisungsanweisungen und Prozeduraufrufe.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Eine zusammengesetzte Anweisung besteht aus mehreren Anweisungen.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Bedingungsanweisungen
DelphiScript verfügt über Steueranweisungen, die den Ablauf innerhalb eines Skripts beeinflussen. Die häufigste Steueranweisung ist die If..Then
If-Then-Anweisung
Die If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Case-Of-Anweisung
Um eine komplexe Reihe von IfCase
In einer Case-Anweisung können beliebige Typen verwendet werden, da DelphiScript eine typfreie Sprache ist. Case-Anweisungen können eine Else-Anweisung enthalten, die ausgeführt wird, wenn keine der Bezeichnungen dem Wert des Selektors (innerhalb der Case-Of-Bedingung) entspricht.
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;
With-Anweisung
Die With
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
„For“-„To“-„Do“-Schleife
Die For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
„Repeat Until“-Schleife
Die RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
„While Do“-Schleife
Eine WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
„Continue“-Anweisung
Die 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;
Goto-Label-Anweisung
Die GotoGoto labellabel: statement
Ein Label kann ein beliebiger gültiger Bezeichner sein. Die Label-Deklaration und Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Exit-Anweisung
Die ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Break-Anweisung
Die 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;
DelphiScript-Ausdrucksoperatoren
Im Allgemeinen ist ein Ausdruck eine gültige Kombination aus Konstanten, Variablen, Literalwerten, Operatoren und Funktionsergebnissen. Ausdrücke werden verwendet, um den Wert zu bestimmen, der einer Variablen zugewiesen werden soll, um den Parameter einer Funktion zu berechnen oder um eine Bedingung zu prüfen. Ausdrücke können Funktionsaufrufe enthalten.
DelphiScript verfügt über eine Reihe von logischen, arithmetischen, booleschen und relationalen Operatoren. Diese Operatoren sind nach ihrer Prioritätsreihenfolge gruppiert (siehe unten), die sich von den in Basic, C usw. verwendeten Prioritätsreihenfolgen unterscheidet. Beispielsweise gilt für den ANDOR
Wenn Sie aAND(a
Die unten aufgeführten unterstützten DelphiScript-Operatoren sind nach ihrer Prioritätsreihenfolge sortiert.
Nach Priorität gruppierte Operatoren
Beachten Sie, dass unäre Operatoren die höchste Priorität haben.
|
Boolesches oder bitweises NOT. |
* |
Arithmetische Multiplikation. |
|
Gleitkommadivision. |
|
Ganzzahlige Division. |
|
Modulo (Rest der ganzzahligen Division). |
|
Boolesches oder bitweises UND. |
|
Bitweise Linksverschiebung. |
|
Bitweise Rechtsverschiebung. |
|
Arithmetische Addition, Zeichenfolgenverkettung. |
- |
Arithmetische Subtraktion. |
|
Boolesches oder bitweises ODER |
|
Boolesches „oder“ bzw. bitweises EXKLUSIVES ODER. |
|
Prüfen, ob gleich oder nicht. |
|
Prüfen, ob nicht gleich ist oder nicht. |
Prüfen, ob kleiner als oder nicht. |
|
|
Prüfen, ob größer als ist oder nicht. |
|
Prüfen, ob kleiner oder gleich ist oder nicht. |
|
Prüfen, ob größer als oder gleich ist oder nicht. |
Beachten Sie außerdem, dass das ^@