Palavras-chave
Esta referência aborda as palavras-chave do DelphiScript utilizadas no sistema de scripts do Altium Designer. O sistema de scripts suporta a linguagem DelphiScript, que é muito semelhante à linguagem de programação Embarcadero Delphi™. A principal diferença reside no facto de o DelphiScript ser uma linguagem de scripts sem tipos.
Nesta secção, são apresentadas as palavras-chave comuns do DelphiScript, com informações detalhadas e exemplos. Para obter mais informações sobre palavras-chave, tais como rotinas de ficheiros Delphi, matemáticas e de tratamento de cadeias de caracteres, consulte«Funções» e a «Referência do Embarcadero Delphi».
E
O operador And
O operador And
Var I, J : Integer Begin I := $F0; J := $8F; ShowMessage(IntToStr(I and J)); End;
Var S : String; Begin S := ''; If (Length(S) > 0) and (S[1\] = 'X') Then Delete(S,1,1); End;
Palavra-chave «Or»
XOR palavra-chave
Matriz
Array [index range];
A linguagem DelphiScript é uma linguagem sem tipos, pelo que é necessário especificar o tamanho ou o intervalo de um array. Ainda é possível definir o tipo de elementos que o array pode conter, mas isso não é necessário. A declaração « Open array
var x : array [1..2];
Begin
Begin
statement
End;
A palavra-chave begin
Var Test : Integer; Begin Test := Test + 4; ShowMessage(IntToStr(Test)); End;
Palavra-chave «End»
Break
Break;
Um « BreakGoto
While Condition Do Begin DoSomething; Begin If AnotherCondition Then Break; End; End;
Palavra-chave «While»
Palavra-chave «Continue»
Palavra-chave «Do»
Repetir palavra-chave
Caso
Case expression Of
Value range : Expression;
Else Expression;
End;
As instruções « Case
Em muitas situações, um conjunto complexo de instruções « IfCasecasecaseCaseelseCase 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;
Da palavra-chave
Continuar
Continue
A instrução « ContinueGoto
Var I := 0; s:= 1; Begin While True Do Begin S := S \* 2; I := I \\+ 1; If I > 4 then continue; Break; End;
Palavra-chave «break»
Palavra-chave «While»
Palavra-chave «Continue»
Palavra-chave «Do»
Palavra-chave «Repeat»
Const
Const
Name = Expression;
A palavra-chave « Constconst
Const b = 30; Begin ShowMessage(IntTtStr(b)); End;
Uma tentativa de alterar o valor do parâmetro b const
Const b = 30; Begin b := 40; ShowMessage(IntToStr(b)); End;
Div
dividend div divisor
O operador Div
Operador Mod
Operador Div
Do
-
instruçãoFor variable := expression1 to expression2 do -
declaraçãoWhile expression do -
instrução.With expression do
A palavra-chave « DoFor, While and With
For i := 0 To AnIndex - 1 Do S := S + #13 + AString;
Para a palavra-chave
Para a palavra-chave
Enquanto a palavra-chave
Com a palavra-chave
Até à palavra-chave
Até
For variable := expression1 DownTo expression2 Do statement.
Utilize « DownToFor
Para a palavra-chave
Palavra-chave «To»
Palavra-chave «Do»
Caso contrário
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
A palavra-chave « Elseelseifelsetry-exceptcase
Se a palavra-chave
Então palavra-chave
Palavra-chave Try
Palavra-chave Case
Fim
-
Begin statements End; -
Try statements Except Exception clauses... else Statements... End; -
Try statements Finally statements End; -
Case Expression of clauses Else statements... End;
A palavra-chave « EndCase
Palavra-chave «Begin»
Palavra-chave «Case»
Palavra-chave «Try»
Except
Try statements Except statements End;
Utilize blocos « Try-ExceptOnRaiseExcept
Try X := Y/Z; Except Raise('A divide by zero error!'); End;
Palavra-chave «End»
Palavra-chave «Finally»
Palavra-chave «Try»
Finally
Try statements... Finally statements... End;
A palavra-chave « finallytry-finallyfinallytrytry-finally
Palavra-chave «End»
Palavra-chave «Raise»
Palavra-chave «Try»
Para
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
Um ciclo « for
For i := 0 to AnIndex - 1 Do Begin S := S + #13 + AString; End; ShowMessage(S);
Palavra-chave «Do»
Palavra-chave DownTo
Palavra-chave Repeat
Até à palavra-chave
Enquanto palavra-chave
Com a palavra-chave
Avançar
subroutine header; forward;
A diretiva « Forwardforward
Função
Function name (parameters) : return type;
Uma função ` Function
Function TestFunc(Min, Max : integer) : integer; Begin Result := Random(Max - Min +1); End;
Goto
goto label
A instrução « goto
Label StartHere; // code StartHere: //do anything; Goto StartHere;
Palavra-chave «Label»
Se
-
if condition then statement; -
if condition then statement1 else statement2;
A condição para a palavra-chave « IfElse
Se A > B Então ShowMessage('X>Y e A > B'); Caso contrário ShowMessage('X>Y e A <=B'); Fim;</code></wrap></pre> <p><wrap><strong>Ver também</strong></wrap><br> <a href="#And">Palavra-chave «And»</a><br> <a href="#Begin">Palavra-chave «Begin»</a><br> <a href="#Or">Palavra-chave «Or»</a><br> <a href="#Then">Palavra-chave Then</a><br> <a href="#Else">Palavra-chave Else</a> </p> <p><a id="Interface" name="Interface"></a> </p> <h3>Interface</h3> <p><wrap><strong>Declaração</strong></wrap><br> <wrap><code>Interface<br> // Cadeia de caracteres identificadora globalmente única.<br> Métodos<br> Propriedades<br> Fim;</code></wrap> </p> <p><wrap><strong>Descrição</strong></wrap><br> A palavra-chave <wrap><code>interface</code></wrap> permite o acesso a um objeto existente na memória e invoca os métodos desse objeto. Uma interface só pode consistir em propriedades e métodos — sem dados. Uma vez que as interfaces não podem conter dados, as suas propriedades têm de escrever e ler através dos métodos. Mais importante ainda, as interfaces não têm implementação, uma vez que apenas definem um contrato com um objeto existente na memória.Uma interface pode ser considerada como um ponto de contacto com um objeto existente na memória do computador e oferece a capacidade de ler/gravar dados através das propriedades da interface. A interface solicita dados ao seu objeto associado.
O DelphiScript é uma linguagem sem tipos; por isso, não é possível definir novos tipos, tais como novos registos, matrizes ou classes, nem interfaces associadas.
Rótulo
Declaration
label digits, identifier, ...;
Description
A palavra-chave «» 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 utilizado no mesmo bloco para identificar uma instrução como o alvo de uma instrução « label». goto
Example: Label StartHere; // code StartHere: //do anything; Goto StartHere;
See also
Palavra-chave GotoMod
Declaration
Integer expression mod integer expression
Description
O operador «» realiza uma operação de módulo inteiro ou de resto. O resultado de « mod» é « A mod B». A - (A div B) * B
See also
Função «div»Nil
Declaration
const nil = pointer(0);
Description
A palavra-chave «» é um valor de ponteiro especial que é garantidamente distinto e que não aponta para nada. nilNot
Declaration
not boolean expressionnot integer expression
Description
O operadorrealiza uma negação. Se o operando for do tipo booleano, o negativo corresponde à negação lógica. note Not False = True. Se o operando for um inteiro, o operador not true = falserealiza uma negação bit a bit de cada bit do valor inteiro — ou seja, uma operação de complemento. notDa
Declaration
case expression of
selector: expression1
...
end
Description
A palavra-chave «» é utilizada na instrução « Of». case
See also
Instrução «Case»Ou
Declaration
boolean expression or boolean expressioninteger expression or integer expression
Description
O operador «» realiza uma operação lógica «Or» se os operandos forem do tipo booleano, ou uma operação «Or» bit a bit se os operandos forem inteiros. Uma operação lógica «Or» só é falsa se ambos os operandos forem falsos; caso contrário, é verdadeira quando pelo menos um dos operandos for verdadeiro. or
See also
Palavra-chave «And»
Palavra-chave «Not»
Palavra-chave «Shl»
Palavra-chave «Shr»
Palavra-chave XORProcedimento
Declaration
Procedure name;Procedure Name (Parameter, ...);
Description
A palavra-chave «» declara uma sub-rotina que não possui um tipo de retorno. As variáveis declaradas no interior de um procedimento não são acessíveis fora desse procedimento. Note-se que esta palavra-chave pode ser utilizada, mas é ignorada pelo sistema de scripts. procedure
Example: Procedure TestRand(Var Rand: Integer; Max : Integer); Begin Rand := Random(Max); End;
See also
Palavra-chave «function»Programa
Declaration
Program Name;
declarations...
Block
Description
A palavra-chave «» dá início a um script. A extensão de ficheiro para um script é « program». Note-se que esta palavra-chave pode ser utilizada, mas é ignorada pelo sistema de scripts. *.pas
See also
Palavra-chave «função»Raise
Declaration
Raise statement;
Description
A palavra-chave «» está relacionada com a palavra-chave « raise». A palavra-chave « Try» pode ser utilizada sem parâmetros para re-lançar a última exceção. Também pode ser utilizada com um parâmetro de cadeia de caracteres para lançar uma exceção utilizando uma mensagem específica. Raise
Example: Raise(Format('Invalid Value Entered : %d', \[Height]));Note-se que a palavra-chave «
» não é suportada no DelphiScript, pelo que os objetos « On» não podem ser utilizados em scripts. ExceptionRepetir
Declaration
repeat
statements;
until boolean expression
Description
As instruções dentro de um bloco «» são executadas repetidamente até que a expressão booleana seja verdadeira. Repeat Until
Example: Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
See also
Palavra-chave «Until»Resultado
Declaration
Var result : Function return type;
Description
Todas as funções num script devem utilizar a palavra-chave «» para devolver um valor resultante. O tipo da variável corresponde ao tipo de retorno da função. Result
See also
Palavra-chave «função»Shl
Declaration
value shl bits
Description
O operadorrealiza um deslocamento para a esquerda de um valor inteiro em shls posições de bit. Os bits que ficam vagos são preenchidos à direita com bits nulos. Bits
See also
Palavra-chave «And»
Palavra-chave «Not»
Palavra-chave «Or»
Palavra-chave Shr
Palavra-chave XORShr
Declaration
value shr bits
Description
O operador «» realiza um deslocamento à direita de um valor inteiro em shrs posições de bits. Os bits que ficam vagos são preenchidos à esquerda com zeros. Bits
See also
Palavra-chave And
Palavra-chave Not
Palavra-chave «Or»
Palavra-chave Shl
Palavra-chave XorCadeia de caracteres
Declaration
type string;type Name = string[Constant]
Description
A palavra-chave «» representa o tipo «string». stringEntão
Declaration
If expression then statement»
Description
A palavra-chave «» faz parte de uma instrução « Then». « If
» «See also » «Para
Declaration
For variable := expression1 to expression2 do statement
Description
A palavra-chave «» faz parte de um ciclo « to» que conta para cima. for
Example For i := 0 to AnIndex - 1 do S := S + #13 + AString;
See also
Palavra-chave Downto
Palavra-chave «For»Experimentar
Declaration
Try statements finally statements end;Try statements except statements end;
Description
A palavra-chave «» introduz uma instrução « try» ou uma instrução « try-except». Estas duas instruções estão relacionadas, mas têm finalidades diferentes. try-finally
Try Finally
As instruções no bloco «» são sempre executadas, independentemente da forma como o controlo sai do bloco «try» — seja por exceção, «Exit» ou «Break». Utilize o bloco « finally» para libertar objetos temporários e outros recursos e para realizar atividades de limpeza. Normalmente, não é necessário mais do que uma instrução « try-finally» numa sub-rotina. try-finally
Example: Reset(F); Try ... // process file F Finally CloseFile(F); End;
Try Except
Utilize «» 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 intuitiva. Uma vez que a palavra-chave « try-except» não é suportada no DelphiScript, utilize a instrução « On» dentro do bloco « Raise». Except
Example: Try X := Y/Z; Except Raise('A divide by zero error!'); End;
See also
Palavra-chave `Raise`Tipo
Declaration
Type Name = type declaration ...
Description
A palavra-chave «» declara o tipo de uma variável. Uma vez que o DelphiScript é uma linguagem sem tipos, não é necessário declarar variáveis de um tipo específico, mas isso pode ser feito para facilitar a legibilidade dos 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 registos ou classes. TypeA conversão de tipos é ignorada nos scripts, pelo que os tipos na declaração de variáveis são ignorados e podem ser omitidos. Estas declarações estão, portanto, corretas:
Example:
var a : integer;
var b : integer;
var c, d;Os tipos dos parâmetros na declaração de procedimentos/funções são ignorados e podem ser omitidos. Por exemplo, este código está correto:
Function sum(a, b) : integer; Begin Result := a + b; End;Em geral, os variantes podem ser utilizados para armazenar qualquer tipo de dados e realizar inúmeras operações e conversões de tipo. Um variante é verificado quanto ao tipo e calculado em tempo de execução. O compilador não avisa sobre possíveis erros no código, que só podem ser detetados através de testes exaustivos. No geral, as partes do código que utilizam variantes podem ser consideradas código interpretado, uma vez que muitas operações só podem ser resolvidas em 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
Palavra-chave «var»Unidade
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 «
» introduz uma unidade, que é o módulo básico de um script. Note-se que esta palavra-chave pode ser utilizada, mas é ignorada pelo sistema de scripts. unit
See also
Palavra-chave «Função»
Palavra-chave «Program»Até
Declaration
Repeat
Statements;
Until boolean expression
Description
A palavra-chave «» marca o fim do bloco « until». As instruções dentro de um bloco « Repeat-Until» são executadas repetidamente até que a expressão booleana seja verdadeira. Repeat-Until
Example: Repeat Write('Enter a value (0..9): '); ShowMessage(IntToStr(I)); Until (I >= 0) and (I = 9);
See also
Palavra-chave «Repeat»Utilizações
Declaration
Uses Unit Name, ...;
Description
A palavra-chave «» enumera os nomes das unidades que são importadas para a unidade circundante. A declaração « uses» é opcional, uma vez que o sistema de scripts suporta unidades importadas no Altium Designer. Pode incluir a declaração «uses» para facilitar a legibilidade. usesTodas as unidades armazenadas no mesmo projeto podem aceder a variáveis globais a partir de qualquer uma dessas unidades. Tenha isto em conta ao declarar variáveis em unidades dentro do mesmo projeto.
As APIs Client, PCB, Schematic e WorkSpace Manager do Altium Designer, bem como as unidades SysUtils, Classes e outras do Delphi, são importadas e estão disponíveis para utilização em scripts — pelo que não há necessidade específica de declarar estas unidades nos scripts.
See also Para obter informações mais detalhadas sobre a API do Altium Designer, consulte a documentação«Utilizar a API do Altium Designer ».
Var
Declaration
Name : Type
Name : Type = Expression;
DelphiScript Variables
Todas as variáveis num script são sempre do tipo Variant. A conversão de tipos é ignorada. Os tipos na declaração de variáveis são ignorados epodem 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 procedimentos/funções são ignorados e podem ser omitidos. Por exemplo, este código está correto:
Function sum(a, b) : integer; Begin Result := a + b; End;Em geral, os variantes podem ser utilizados para armazenar qualquer tipo de dados e realizar inúmeras operações e conversões de tipo. Um variante é verificado quanto ao tipo e calculado em tempo de execução. O compilador não emitirá avisos sobre possíveis erros no código, os quais só podem ser detetados através de testes exaustivos. No geral, as partes do código que utilizam variantes podem ser consideradas código interpretado, uma vez que muitas operações só podem ser resolvidas em tempo de execução. Isto pode afetar a velocidade do código.
Declarar uma variável variante:
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 da matriz é 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;Enquanto
Declaration
while expression do statement
Description
A instrução «» executa repetidamente a instrução enquanto a expressão for verdadeira. while
See also
Palavra-chave «break»
Palavra-chave «Continue»
Palavra-chave «Do»
Palavra-chave DownTo
Palavra-chave «For»
Palavra-chave «Repeat»
Até à palavra-chave
Com a palavra-chaveCom
Declaration
with expression do statement
Description
A instrução «» adiciona uma referência a um registo, objeto, classe ou interface ao âmbito para a resolução de nomes de símbolos. With
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
Palavra-chave «do»Xor
Declaration
- expressão booleana XOR expressão booleana
integer expression Xor integer expression
Description
O operador «» realiza uma operação «Or Exclusivo» nos seus operandos. Se os operandos forem do tipo booleano, devolve um resultado booleano — «true» se os operandos forem diferentes e «false» se forem iguais. xorUm operador «
» inteiro opera sobre cada bit dos seus operandos, definindo o bit de resultado como « xor» 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 « 1» nos bits mais à esquerda. 0
See also
E a palavra-chave
Não é uma palavra-chave
Palavra-chave «Or»
Palavra-chave Shl
Palavra-chave Shr