Palavras-chave

 

Esta referência abrange as palavras-chave de DelphiScript utilizadas pelo Sistema de Scripting no Altium Designer. O sistema de scripting suporta a linguagem DelphiScript, que é muito semelhante à linguagem de programação Embarcadero Delphi™. A principal diferença é que DelphiScript é uma linguagem de scripting sem tipos.

Para informações mais detalhadas sobre as diferenças entre DelphiScript e a linguagem de programação Delphi, consulte a página Differences between DelphiScript and Delphi.

Nesta secção, são apresentadas palavras-chave comuns de DelphiScript com informações detalhadas e exemplos. Para mais informações sobre palavras-chave, como ficheiros Delphi, rotinas matemáticas e de tratamento de cadeias de caracteres, consulte Functions e a Embarcadero Delphi Reference.

And

Declaration
O operador And executa um and lógico/bit a bit.

Description
O operador And executa uma operação lógica e, se os operadores forem do tipo booleano, ou um And bit a bit, se os operadores forem inteiros.

Example of a boolean And evaluation:

Var
  I, J : Integer
Begin
  I := $F0;
  J := $8F;
  ShowMessage(IntToStr(I and J));
End;

Example of a logical And evaluation:

Var
  S : String;
Begin
  S := '';
  If (Length(S) > 0) and (S[1\] = 'X') Then Delete(S,1,1);
End;

See also
Or keyword
Xor keyword

Array

Declaration
Array [index range];

Description
A linguagem DelphiScript é uma linguagem sem tipos, pelo que o tamanho ou intervalo de um array tem de ser especificado. O tipo de elementos que o array pode conter pode ainda ser definido, mas não é necessário. A declaração Open array não é suportada.

Example:

var x : array [1..2]; 

Begin

Declaration
Begin
  statement
End;

Description
A palavra-chave begin inicia um bloco no script. Um bloco é o corpo principal de um script e pode incluir qualquer número de instruções, podendo ser usado em qualquer local onde seja necessária uma única instrução, como no corpo de uma instrução condicional ou de ciclo.

Example:

Var
  Test : Integer;
Begin
  Test := Test + 4;
  ShowMessage(IntToStr(Test));
End;

See also
End keyword

Break

Declaration
Break;

Description
Uma instrução Break sai de um ciclo, de forma semelhante a uma instrução Goto.

Example:

While Condition Do
Begin
  DoSomething;
  Begin
    If AnotherCondition Then
      Break;
  End;
End;

See also
While keyword
Continue keyword
Do keyword
Repeat keyword

Case

Declaration
Case expression Of
  Value range : Expression;
Else Expression;
End;

Description
As instruções Case selecionam um ramo entre muitos ramos possíveis, dependendo do valor da expressão.

Em muitas situações, um conjunto complexo de instruções If pode ser simplificado substituindo-o por instruções Case. Uma instrução case numa expressão é usada para selecionar um valor, uma lista de valores possíveis ou um intervalo de valores. Quaisquer tipos podem ser usados numa instrução case, porque DelphiScript é uma linguagem sem tipos. As instruções Case podem ter 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;

See also
Of keyword

Continue

Declaration
Continue

Description
A instrução Continue salta o corpo de um ciclo, de forma semelhante à instrução Goto;

Example:

Var
  I := 0; s:= 1;
Begin
  While True Do
  Begin
  S := S \* 2;
  I := I \\+ 1;
  If I <> 4 then continue;
  Break;
End;

See also
Break keyword
While keyword
Continue keyword
Do keyword
Repeat keyword

Const

Declaration
Const
Name = Expression;

Description
A palavra-chave Const especifica qualquer expressão com valor constante como o valor de uma constante. Se tentar modificar a expressão que é do tipo const no script, o sistema de scripting irá gerar um erro de identificador não declarado.

Example:

Const
  b = 30;
Begin
  ShowMessage(IntTtStr(b));
End;

Uma tentativa de alterar o valor do parâmetro b const irá gerar um erro, por exemplo:

Const
  b = 30;
Begin
  b := 40;
  ShowMessage(IntToStr(b));
End;

Div

Declaration
dividend div divisor

Description
O operador Div executa uma divisão inteira que descarta resultados fracionários sem arredondamento. Se o divisor for zero, DelphiScript comunica um erro.

See also
Mod Operator
Div Operator

Do

Declaration

  • For variable := expression1 to expression2 do statement
  • While expression do statement
  • With expression do statement.

Description
A palavra-chave Do faz parte das instruções For, While and With do DelphiScript.

Example:

For i := 0 To AnIndex - 1 Do
  S := S + #13 + AString;

See also
For keyword
To keyword
While keyword
With keyword
DownTo keyword

DownTo

Declaration
For variable := expression1 DownTo expression2 Do statement.

Description
Utilize DownTo num ciclo For para fazer uma contagem decrescente.

See also
For keyword
To keyword
Do keyword

Else

Declaration

  • If condition then statement Else statement
  • Try statement except exception Else statement end
  • Case expression of Else end;

Description
A palavra-chave Else introduz a parte genérica de várias instruções. Tenha em atenção que a parte else de uma instrução if é seguida por uma única instrução, mas a parte else das instruções try-except e case pode ter múltiplas instruções.

See also
If keyword
Then keyword
Try keyword
Case keyword

End

Declaration

  • Begin statements End;
  • Try statements Except Exception clauses... else Statements... End;
  • Try statements Finally statements End;
  • Case Expression of clauses Else statements... End;

Description
A palavra-chave End termina um bloco ou uma parte múltipla, como declarações, instruções Case e assim por diante.

See also
Begin keyword
Case keyword
Try keyword

Except

Declaration
Try statements Except statements End;

Description
Utilize blocos Try-Except para tratar casos excecionais, por exemplo, para capturar exceções específicas e fazer algo de útil com elas, como adicioná-las a um registo de erros ou criar uma caixa de diálogo amigável. Como a palavra-chave On não é suportada em DelphiScript, utilize a instrução Raise dentro do bloco Except e comunique apenas uma mensagem textual.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

See also
End keyword
Finally keyword
Try keyword

Finally

Declaration
Try statements... Finally statements... End;

Description
A palavra-chave finally inicia a parte finally de um bloco try-finally. As instruções no bloco finally são sempre executadas, independentemente da forma como o controlo sai do bloco try — exceção, saída ou break. Recomenda-se a utilização do bloco try-finally ao lidar com a criação/destruição de objetos e E/S de ficheiros.

See also
End keyword
Raise keyword
Try keyword

For

Declaration

  • for variable := expression1 to expression2 do statement
  • for variable := expression1 downto expression2 do statement

Description
Um ciclo for avalia as expressões que especificam os limites deste ciclo e, em seguida, executa repetidamente o corpo do ciclo através da variável de controlo do ciclo, que é atualizada após cada iteração.

Example:

For i := 0 to AnIndex - 1 Do
Begin
  S := S + #13 + AString;
End;
ShowMessage(S);

See also
Do keyword
DownTo keyword
Repeat keyword
To keyword
While keyword
With keyword

Forward

Declaration
subroutine header; forward;

Description
A diretiva Forward permite que uma função ou procedimento seja declarado antes de ser chamado, declarando o cabeçalho (nome, parâmetros e tipo de retorno) com a diretiva forward.

Function

Declaration
Function name (parameters) : return type;

Description
Uma Function é uma subrotina que devolve um valor. Tenha em atenção que apontadores para funções não são permitidos em scripts — isto é, tipos funcionais não podem ser definidos. As variáveis declaradas dentro de uma função não são acessíveis fora deste procedimento.

Example

Function TestFunc(Min, Max : integer) : integer;
Begin
  Result := Random(Max - Min +1);
End;

Goto

Declaration
goto label

Description
A instrução goto transfere o controlo para o rótulo indicado. O rótulo pode ser qualquer identificador ou uma cadeia de dígitos com até quatro dígitos.

Example

Label StartHere;
// code
 
StartHere: //do anything;
 
Goto StartHere;

See also
Label keyword

If

Declaration

  • if condition then statement;
  • if condition then statement1 else statement2;

Description
A condição para a palavra-chave If tem de ser uma expressão booleana. A palavra-chave Else é opcional.

Example

If A > B Then
    ShowMessage('X>Y and A > B');
Else
    ShowMessage('X>Y and A <=B');
End;

See also
And keyword
Begin keyword
Or keyword
Then keyword
Else keyword

Interface

Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;

Description
A palavra-chave interface permite o acesso a um objeto existente na memória e invoca os métodos do objeto. Uma interface só pode consistir em propriedades e métodos — sem dados. Como as interfaces não podem conter dados, as suas propriedades têm de escrever para e ler a partir de métodos. Mais importante ainda, as interfaces não têm implementação, pois apenas definem um contrato para um objeto existente na memória.

Uma interface pode ser entendida como um ponto de contacto com um objeto existente na memória do computador e oferece a capacidade de ler/escrever dados através das propriedades da interface. A interface solicita dados ao seu objeto associado.

DelphiScript é uma linguagem sem tipos; por conseguinte, não é possível definir novos tipos, como novos registos, arrays ou classes, nem interfaces associadas.

Tenha atenção à outra utilização da palavra-chave Interface, que é usada para as secções Interface/Implementation de uma unit do Embarcadero Delphi. Estas palavras-chave Interface/Implementation podem ser usadas em scripts, mas são essencialmente ignoradas quando um script é executado no Altium Designer.

Label

Declaration
label digits, identifier, ...;

Description
A palavra-chave label declara um ou mais rótulos. Um rótulo pode ser uma cadeia de dígitos com até quatro dígitos ou um identificador. Um rótulo pode ser usado no mesmo bloco para identificar uma instrução como destino de uma instrução goto.

Example:

Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;

See also
Goto keyword

Mod

Declaration
Integer expression mod integer expression

Description
O operador mod executa uma operação de módulo inteiro ou resto. O resultado de A mod B é A - (A div B) * B.

See also
Div function

Nil

Declaration
const nil = pointer(0);

Description
A palavra-chave nil é um valor especial de apontador que é garantidamente distinto e não aponta para nada.

Not

Declaration

  • not boolean expression
  • not integer expression

Description
O operador not executa uma negação. Se o operando for de tipo booleano, o negativo é uma negação lógica. Not False = True e not true = false. Se o operando for um inteiro, o operador not executa uma negação bit a bit de cada bit no valor inteiro — isto é, uma operação de complemento.

Of

Declaration
case expression of
  selector: expression1
  ...
end

Description
A palavra-chave Of é usada para a instrução case.

See also
Case statement

Or

Declaration

  • boolean expression or boolean expression
  • integer expression or integer expression

Description
O operador or executa um Or lógico se os operandos forem do tipo booleano, ou um Or bit a bit se os operadores forem inteiros. Um Or lógico só é falso se ambos os operandos forem falsos; caso contrário, é verdadeiro quando pelo menos um dos operandos é verdadeiro.

See also
And keyword
Not keyword
Shl keyword
Shr keyword
Xor keyword

Procedure

Declaration

  • Procedure name;
  • Procedure Name (Parameter, ...);

Description
A palavra-chave procedure declara uma subrotina que não tem tipo de retorno. As variáveis declaradas dentro de um procedimento não são acessíveis fora deste procedimento. Note que esta palavra-chave pode ser usada, mas é ignorada pelo sistema de scripting.

Example:

Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
  Rand := Random(Max);
End;

See also
Function keyword

Program

Declaration
Program Name;
declarations...
Block

Description
A palavra-chave program inicia um script. A extensão de ficheiro para um script é *.pas. Note que esta palavra-chave pode ser usada, mas é ignorada pelo sistema de scripting.

See also
Function keyword

Raise

Declaration
Raise statement;

Description
A palavra-chave raise está relacionada com a palavra-chave Try. A palavra-chave Raise pode ser usada sem parâmetros para voltar a lançar a última exceção. Também pode ser usada com um parâmetro de cadeia de caracteres para lançar uma exceção com uma mensagem específica.

Example:

Raise(Format('Invalid Value Entered : %d', \[Height])); 

Note que a palavra-chave On não é suportada em DelphiScript, pelo que os objetos Exception não podem ser utilizados em scripts.

Repeat

Declaration
repeat
statements;
until boolean expression

Description
As instruções dentro de um bloco Repeat Until são executadas repetidamente até que a expressão booleana seja verdadeira.

Example:

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

See also
Until keyword

Result

Declaration
Var result : Function return type;

Description
Todas as funções num script têm de usar a palavra-chave Result para devolver um valor resultante. O tipo da variável é o tipo de retorno da função.

See also
Function keyword

Shl

Declaration
value shl bits

Description
O operador shl efetua um deslocamento para a esquerda de um valor inteiro em Bits posições de bit. Os bits libertados são preenchidos à direita com bits a zero.

See also
And keyword
Not keyword
Or keyword
Shr keyword
Xor keyword

Shr

Declaration
value shr bits

Description
O operador shr efetua um deslocamento para a direita de um valor inteiro em Bits posições de bit. Os bits libertados são preenchidos à esquerda com bits a zero.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Xor keyword

String

Declaration

  • type string;
  • type Name = string[Constant]

Description
A palavra-chave string representa o tipo string.

Then

Declaration
If expression then statement

Description
A palavra-chave Then faz parte de uma instrução If.
See also
If keyword

To

Declaration
For variable := expression1 to expression2 do statement

Description
A palavra-chave to faz parte de um ciclo for que conta de forma crescente.

Example

For i := 0 to AnIndex - 1 do
  S := S + #13 + AString;

See also
Downto keyword
For keyword

Try

Declaration

  • Try statements finally statements end;
  • Try statements except statements end;

Description
A palavra-chave try introduz uma instrução try-except ou uma instrução try-finally. Estas duas instruções estão relacionadas, mas servem finalidades diferentes.

Try Finally
As instruções no bloco finally são sempre executadas, independentemente da forma como o controlo sai do bloco try: exceção, Exit ou Break. Utilize o bloco try-finally para libertar objetos temporários e outros recursos, e para realizar atividades de limpeza. Normalmente, não precisa de mais do que uma instrução try-finally numa sub-rotina.

Example:

Reset(F);
Try
  ...  // process file F
Finally
  CloseFile(F);
End;

Try Except
Utilize try-except para tratar casos excecionais, por exemplo, para capturar exceções específicas e fazer algo útil com elas, como adicioná-las a um registo de erros ou criar uma caixa de diálogo amigável. Como a palavra-chave On não é suportada em DelphiScript, utilize a instrução Raise dentro do bloco Except.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

See also
Raise keyword

Type

Declaration
Type Name = type declaration ...

Description
A palavra-chave Type declara o tipo de uma variável. Como DelphiScript é uma linguagem sem tipos, não é necessário declarar variáveis de um tipo específico, mas isso pode ser feito por uma questão de legibilidade nos scripts. Todas as variáveis num script são sempre do tipo Variant. A principal limitação na escrita de scripts é que não é possível declarar records ou classes.

O typecasting é ignorado nos scripts, pelo que os tipos na declaração de variáveis são ignorados e podem ser omitidos. Assim, estas declarações estão corretas:

Example:
var a : integer;
var b : integer;
var c, d;

Os tipos dos parâmetros na declaração de procedure/function são ignorados e podem ser omitidos. Por exemplo, este código está correto:

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

De um modo geral, as variants podem ser utilizadas para armazenar qualquer tipo de dados e efetuar numerosas operações e conversões de tipo. Uma variant é verificada quanto ao tipo e calculada em tempo de execução. O compilador não avisará sobre possíveis erros no código, que só podem ser detetados com testes extensivos. No geral, as partes do código que usam variants podem ser consideradas código interpretado, porque muitas operações não podem ser resolvidas até ao tempo de execução. Isto pode afetar a velocidade do código.

Example:

Var
V
Begin
  // you can assign to it values of several different types:
  V := 10;
  V := 'Hello, World';
  V := 45.55;
End;

See also
Var keyword

Unit

Declaration

  • Unit Name;
    interface
       declarations
    implementation
       declarations
       statements
    Initialization
       statements
    finalization
       statements
    end.

     
  • Unit Name;
    interface
       declarations
    implementation
       declarations
       statements
    begin
       statements
    end.

A palavra-chave unit introduz uma unit, que é o módulo básico de um script. Note que esta palavra-chave pode ser utilizada, mas é ignorada pelo sistema de scripting.

See also
Function keyword
Program keyword

Until

Declaration
Repeat
Statements;
Until boolean expression

Description
A palavra-chave until assinala o fim do bloco Repeat-Until. As instruções dentro de um bloco Repeat-Until são executadas repetidamente até que a expressão booleana seja verdadeira.

Example:

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

See also
Repeat keyword

Uses

Declaration
Uses Unit Name, ...;

Description
A palavra-chave uses lista os nomes das units que são importadas para a unit envolvente. A declaração uses é opcional porque o sistema de scripting suporta units que são importadas no Altium Designer. Pode incluir a declaração uses por uma questão de legibilidade.

Todas as units armazenadas no mesmo projeto podem aceder a variáveis globais de qualquer uma dessas units. Tenha isso em conta ao declarar variáveis em units dentro do mesmo projeto.

As APIs Client, PCB, Schematic e WorkSpace Manager do Altium Designer, bem como SysUtils, Classes e outras units do Delphi, são importadas e disponibilizadas para utilização em scripts — por isso, não existe necessidade específica de declarar estas units em scripts.

See also

Var

Declaration
Name : Type
Name : Type = Expression;

DelphiScript Variables
Todas as variáveis num script são sempre do tipo Variant. O typecasting é ignorado. Os tipos na declaração de variáveis são ignorados e podem ser omitidos, pelo que estas declarações estão corretas:
Var a : integer;
Var b : integer;
Var c, d;

Os tipos dos parâmetros na declaração de procedure/function são ignorados e podem ser omitidos. Por exemplo, este código está correto:

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

De um modo geral, as variants podem ser utilizadas para armazenar qualquer tipo de dados e efetuar numerosas operações e conversões de tipo. Uma variant é verificada quanto ao tipo e calculada em tempo de execução. O compilador não avisará sobre possíveis erros no código, que só podem ser detetados com testes extensivos. No geral, as partes do código que usam variants podem ser consideradas código interpretado, porque muitas operações não podem ser resolvidas até ao tempo de execução. Isto pode afetar a velocidade do código.

Declarar uma variável variant:

Var
  V;
Begin
  // you can assign to it values of several different types:
  V := 10;
  V := 'Hello, World';
  V := 45.55;
End;

Array elements
o tipo dos elementos do array é ignorado e pode ser omitido, pelo que estas declarações são equivalentes:
Var x : array [1..2] of double;
Var x : array [1..2];

Illegal array example:
Type
  TVertices = Array [1..50] Of TLocation;
Var
  NewVertices : TVertices;

Legal array example:
Var
  NewVertices : Array [1..50] of TLocation;

While

Declaration
while expression do statement

Description
A instrução while executa repetidamente a instrução enquanto a expressão for verdadeira.

See also
Break keyword
Continue keyword
Do keyword
DownTo keyword
For keyword
Repeat keyword
To keyword
With keyword

With

Declaration
with expression do statement

Description
A instrução With adiciona uma referência a um record, objeto, classe ou interface ao âmbito para resolução de nomes de símbolos.

Normal version example:

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

With version example:

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

See also
Do keyword

Xor

Declaration

  • expressão booleana Xor expressão booleana
  • integer expression Xor integer expression

Description
O operador xor efetua um OU exclusivo sobre os seus operandos. Se os operandos forem do tipo booleano, devolve um resultado booleano — true se os operandos forem diferentes e false se forem iguais.

Um xor inteiro opera sobre cada bit dos seus operandos, definindo o bit do resultado como 1 se os bits correspondentes em ambos os operandos forem diferentes, e como 0 se ambos os operandos tiverem bits idênticos. Se um operando for menor do que o outro, o operando menor é estendido com 0 nos bits mais à esquerda.

See also
And keyword
Not keyword
Or keyword
Shl keyword
Shr keyword

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

As funcionalidades disponíveis dependem da solução Altium que possui – Altium Develop, uma edição do Altium Agile (Agile Teams ou Agile Enterprise), ou Altium Designer (com subscrição ativa).

Se não encontrar uma funcionalidade mencionada no seu software, contacte a equipa 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