语句和运算符
DelphiScript 语句
DelphiScript 中的语句如果不包含任何其他语句,则被视为 "简单 "语句。简单语句的例子包括赋值语句和过程调用。
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
复合语句由多条语句组成。
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
条件语句
DelphiScript 的控制语句可影响脚本的执行流程。最常见的控制语句是 If..Then
If Then 语句
该 If..Then
If Condition Then Begin // code here End Else Begin // code here End;
语句的情况
为避免复杂的 IfCase
由于 DelphiScript 是一种无类型语言,因此任何类型都可用于 Case 语句。Case 语句可以包含一个 Else 语句,如果没有任何标签与选择器的值(在 Case Of 条件内)相对应,则 Else 语句将被执行。
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
Form.Canvas.Pen.Width := 2; Form.Canvas.Pen.Color := clSilver;
With Form.Canvas.Pen do Begin Width := 2; Color := clSilver; End;
For To Do 循环
该 For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
重复循环
该 RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
While Do 循环
A WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
继续语句
继续语句 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 标签语句
该 GotoGoto labellabel: statement
标签可以是任何有效的标识符。标签声明和 Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
退出语句
退出语句 ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
中断语句
该 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 表达式操作符
一般来说,表达式是常量、变量、文字值、运算符和函数结果的有效组合。表达式用于确定变量赋值、计算函数参数或测试条件。表达式可以包括函数调用。
DelphiScript 拥有大量逻辑、算术、布尔和关系运算符。这些运算符按优先顺序分组(见下文),与 Basic、C 等语言使用的优先顺序不同。例如 ANDOR
如果您写 aAND(a
下面列出的 DelphiScript 支持的操作符按优先顺序排列。
按优先级分组的操作符
请注意,一元运算符具有最高优先级。
|
布尔运算或位运算 NOT。 |
* |
算术乘法。 |
|
浮点除法 |
|
整数除法 |
|
模(整数除法的余数)。 |
|
布尔运算或位与运算。 |
|
比特左移 |
|
位向右移动 |
|
算术加法,字符串连接。 |
- |
算术减法 |
|
布尔或位运算 OR |
|
布尔运算或位运算 EXCLUSIVE OR。 |
|
测试是否相等。 |
|
测试是否不相等。 |
测试是否小于 |
|
|
测试是否大于 |
|
测试是否小于或等于。 |
|
测试是否大于或等于。 |
还要注意 ^@