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.

Simple statements:

X := Y + 10; // assignment

ShowMessage('Hello World!'); // procedure call

Uma instrução composta é constituída por várias instruções.

Compound statements:

Begin
  If A > B Then ShowMessage('A is bigger');
  Else ShowMessage('B is bigger');
  A := 0;
  B := 0;
End;

No DelphiScript, quando se atribuem valores a variáveis, utiliza-se o operador «dois pontos e igual»: :=

Ao verificar a igualdade, utiliza-se o operador de igualdade: =

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 condicional.

Instrução If Then

A If..Then é utilizada para controlo condicional. A sintaxe é:

If Condition Then
  Begin
  // code here
  End
Else
  Begin
  // code here
  End;

Instrução «Case Of»

Para evitar um conjunto complexo de If instruções, estas podem muitas vezes ser substituídas por Case instruções. Uma instrução «Case» numa expressão é utilizada para selecionar um valor, uma lista de valores possíveis ou um intervalo de valores.

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).

Example 1:

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;

Example 2:

Case UserName of
  'Jack', 'Joe' : IsAdministrator := true;
  'Fred' : IsAdministrator := false;
else
  Raise('Unknown User');
End;

Instrução With

A With instrução «with» é uma forma abreviada do DelphiScript. Ao referir-se a uma variável do tipo registo (ou a um objeto), pode utilizar-se uma instrução «with» em vez de repetir o seu nome todas as vezes.

Normal version:

Form.Canvas.Pen.Width := 2;
Form.Canvas.Pen.Color := clSilver;

Version using With:

With Form.Canvas.Pen do
Begin
  Width := 2;
  Color := clSilver;
End;

For To Do Loop

A For..To..Do instrução fornece um método para percorrer repetidamente um bloco de código (uma ou mais linhas de código). A sintaxe básica é:

For counter := start To end Do
Begin
  // code here
End;

For Os loops são frequentemente utilizados para inicializar uma matriz. A direção do contador num For..To..Do loop pode ser controlada utilizando alternativamente a DownTo para decrementar o ciclo. O DelphiScript disponibiliza a instrução Break/Exit para sair de um For..To..Do ciclo prematuramente.

Ciclo «Repeat Until»

A Repeat instrução é executada repetidamente até que a expressão booleana seja verdadeira. A Repeat instrução é sempre executada pelo menos uma vez.

Example:

Repeat
  Write('Enter a value (0..9): ');
  ShowMessage(IntToStr(I));
Until (I >= 0) and (I = 9);

Enquanto-Fazer

Uma While instrução é semelhante a uma Repeat instrução, com a diferença de que a condição de controlo é avaliada antes da primeira execução da sequência de instruções. Assim, se a condição for falsa, a sequência de instruções nunca é executada.

Example:

Randomize;
I := 0;
While I  1000 do
Begin
  I := I + Random (100);
  Add ('Random Number: ' + IntToStr (I));
End;

Instrução «Continue»

A Continue instrução salta o corpo de um ciclo, à semelhança da Goto . A instrução «continue» faz com que o script em execução passe para a próxima iteração no For, While ou Repeat .

Example:

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 Goto instrução tem o seguinte formato Goto label que transfere a execução do script para a instrução marcada pelo rótulo especificado. Para marcar uma instrução, o rótulo deve ser declarado primeiro e, em seguida, a instrução de destino deve ser precedida pelo rótulo e por dois pontos: label: statement

Um rótulo pode ser qualquer identificador válido. A declaração do rótulo e Goto instrução devem pertencer ao mesmo bloco de código dentro de um script. Por conseguinte, não é possível saltar para dentro ou para fora de um procedimento ou função.

Example:

Label StartHere;
  // code
StartHere: Beep;
Goto StartHere;

Instrução Exit

A Exit instrução retorna imediatamente de uma função ou procedimento. Se a chamar Exit a partir de dentro de um Try..Finally bloco, a Finally parte é executada antes de a sub-rotina terminar. Se o Exit procedimento for chamado a partir do corpo principal do script, a execução do script será encerrada.

Example:

Begin
  Server := SchServer;
  If Server = Nil Then
  Begin
    ShowError('No SchServer started');
    Exit;
End;

Instrução Break

A Break instrução faz com que o script em execução saia do For, While ou Repeat . A execução do script continua a partir da linha executável seguinte ao ciclo atual.

Example:

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 AND e OR têm precedência em relação ao operador relacional.

Se escrever a, o DelphiScript executará a AND operação primeiro, o que resultará num erro. Para evitar este problema e definir a prioridade, cada expressão tem de ser colocada entre parênteses: (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

NOT booleano ou bit a bit.

Multiplicative and Bitwise Operators

*

Multiplicação aritmética.

/

Divisão em ponto flutuante.

div

Divisão inteira.

mod

módulo (restante da divisão inteira).

and

AND booleano ou bit a bit.

shl

Deslocamento à esquerda bit a bit.

shr

Deslocamento à direita bit a bit.

Additive Operators

+

Adição aritmética, concatenação de cadeias de caracteres.

-

Subtração aritmética.

or

OR booleano ou bit a bit

xor

OU booleano ou OR bit a bit.

Relational and Comparison Operators (lowest precedence)

=

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 ^ e @ não são suportados pelo DelphiScript.

AI-LocalizedLocalizado por IA
Caso encontre um problema, selecione o texto/imagem e primaCtrl + Enterpara nos enviar o seu feedback.
Disponibilidade de Recursos

Os recursos disponíveis para você dependem de qual solução Altium você possui – Altium Develop, Altium Agile Teams, Altium Agile Enterprise ou Altium Designer (com assinatura ativa).

Se você não vir um recurso documentado no software que está usando no momento, entre em contato com a equipe de vendas da Altium para saber mais.

Documentação Legada

A documentação do Altium Designer já não é versionada. Se precisar de aceder à documentação de versões anteriores do Altium Designer, visite a secção Documentação Legada da página de Outros Instaladores.

Conteúdo