Instruções e operadores
Instruções do DelphiScript
Uma instrução no DelphiScript é considerada «simples» quando não contém quaisquer outras instruções. Exemplos de instruções simples são as instruções de atribuição e as chamadas a procedimentos.
X := Y + 10; // assignment ShowMessage('Hello World!'); // procedure call
Uma instrução composta é constituída por várias instruções.
Begin If A > B Then ShowMessage('A is bigger'); Else ShowMessage('B is bigger'); A := 0; B := 0; End;
Instruções condicionais
O DelphiScript dispõe de instruções de controlo que afetam o fluxo de execução dentro de um script. A instrução de controlo mais comum é a If..Then
Instrução If Then
A If..Then
If Condition Then Begin // code here End Else Begin // code here End;
Instrução «Case Of»
Para evitar um conjunto complexo de IfCase
Podem ser utilizados quaisquer tipos numa instrução Case, uma vez que o DelphiScript é uma linguagem sem tipos. As instruções Case podem incluir uma instrução Else que é executada se nenhum dos rótulos corresponder ao valor do seletor (dentro da condição 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;
Instrução With
A 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 Loop
A For..To..Do
For counter := start To end Do Begin // code here End;
ForFor..To..DoDownToFor..To..Do
Ciclo «Repeat Until»
A RepeatRepeat
Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
Enquanto-Fazer
Uma WhileRepeat
Randomize; I := 0; While I 1000 do Begin I := I + Random (100); Add ('Random Number: ' + IntToStr (I)); End;
Instrução «Continue»
A 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;
Instrução Goto Label
A GotoGoto labellabel: statement
Um rótulo pode ser qualquer identificador válido. A declaração do rótulo e Goto
Label StartHere; // code StartHere: Beep; Goto StartHere;
Instrução Exit
A ExitExitTry..FinallyFinallyExit
Begin Server := SchServer; If Server = Nil Then Begin ShowError('No SchServer started'); Exit; End;
Instrução Break
A 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;
Operadores de expressão do DelphiScript
Em geral, uma expressão é uma combinação válida de constantes, variáveis, valores literais, operadores e resultados de funções. As expressões são utilizadas para determinar o valor a atribuir a uma variável, para calcular o parâmetro de uma função ou para verificar uma condição. As expressões podem incluir chamadas a funções.
O DelphiScript dispõe de vários operadores lógicos, aritméticos, booleanos e relacionais. Estes operadores estão agrupados por ordem de precedência (ver abaixo), que é diferente das ordens de precedência utilizadas pelo Basic, C, etc. Por exemplo, o ANDOR
Se escrever aAND(a
Os operadores do DelphiScript suportados, listados abaixo, são apresentados por ordem de precedência.
Operadores agrupados por precedência
Note-se que os operadores unários têm a maior precedência.
|
NOT booleano ou bit a bit. |
* |
Multiplicação aritmética. |
|
Divisão em ponto flutuante. |
|
Divisão inteira. |
|
módulo (restante da divisão inteira). |
|
AND booleano ou bit a bit. |
|
Deslocamento à esquerda bit a bit. |
|
Deslocamento à direita bit a bit. |
|
Adição aritmética, concatenação de cadeias de caracteres. |
- |
Subtração aritmética. |
|
OR booleano ou bit a bit |
|
OU booleano ou OR bit a bit. |
|
Verificar se são iguais ou não. |
|
Verificar se não são iguais. |
Verificar se é menor que ou não. |
|
|
Verifica se é maior do que ou não. |
|
Verifica se é menor ou igual a ou não. |
|
Verifique se é maior ou igual ou não. |
Note também que o ^@