Parole chiave
Questo riferimento descrive le parole chiave DelphiScript utilizzate dal sistema di scripting in Altium Designer. Il sistema di scripting supporta il linguaggio DelphiScript, che è molto simile al linguaggio di programmazione Embarcadero Delphi™. La differenza principale è che DelphiScript è un linguaggio di scripting senza tipi.
In questa sezione, le parole chiave comuni di DelphiScript sono illustrate con informazioni dettagliate ed esempi. Per ulteriori informazioni sulle parole chiave, come le routine Delphi per file, matematica e gestione delle stringhe, vedere Funzioni e il Riferimento Embarcadero Delphi.
And
Declaration
L'operatore And esegue un AND logico/bit a bit.
Description
L'operatore And esegue un AND logico se gli operatori sono di tipo booleano, oppure un AND bit a bit se gli operatori sono interi.
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
Parola chiave Or
Parola chiave Xor
Array
Declaration
Array [index range];
Description
Il linguaggio DelphiScript è un linguaggio senza tipi, quindi è necessario specificare la dimensione o l'intervallo di un array. È comunque possibile definire il tipo di elementi che l'array può contenere, ma non è necessario. La dichiarazione Open array non è supportata.
Example:
var x : array [1..2];
Begin
Declaration
Begin
statement
End;
Description
La parola chiave begin avvia un blocco nello script. Un blocco è il corpo principale di uno script e può racchiudere un numero qualsiasi di istruzioni; può essere usato ovunque sia richiesta una singola istruzione, ad esempio nel corpo di un'istruzione condizionale o di un ciclo.
Example:
Var
Test : Integer;
Begin
Test := Test + 4;
ShowMessage(IntToStr(Test));
End;
See also
Parola chiave End
Declaration
Break;
Description
Un Break esce da un ciclo, in modo simile a un'istruzione Goto.
Example:
While Condition Do
Begin
DoSomething;
Begin
If AnotherCondition Then
Break;
End;
End;
See also
Parola chiave While
Parola chiave Continue
Parola chiave Do
Parola chiave Repeat
Case
Declaration
Case expression Of
Value range : Expression;
Else Expression;
End;
Description
Le istruzioni Case selezionano un ramo tra molti possibili, a seconda del valore dell'espressione.
In molte situazioni, un insieme complesso di istruzioni If può essere semplificato sostituendolo con istruzioni Case. Un'istruzione case in un'espressione viene usata per selezionare un valore, un elenco di valori possibili o un intervallo di valori. In un'istruzione case è possibile usare qualsiasi tipo, perché DelphiScript è un linguaggio senza tipi. Le istruzioni Case possono avere un'istruzione else che viene eseguita se nessuna delle etichette corrisponde al valore del selettore (all'interno della condizione 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
Parola chiave Of
Declaration
Continue
Description
L'istruzione Continue salta il corpo di un ciclo, in modo simile all'istruzione 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
Parola chiave Break
Parola chiave While
Parola chiave Continue
Parola chiave Do
Parola chiave Repeat
Const
Declaration
Const
Name = Expression;
Description
La parola chiave Const specifica qualsiasi espressione a valore costante come valore di una costante. Se si tenta di modificare nello script l'espressione che è di tipo const, il sistema di scripting genererà un errore di identificatore non dichiarato.
Example:
Const
b = 30;
Begin
ShowMessage(IntTtStr(b));
End;
Un tentativo di modificare il valore del parametro b const genererà un errore, ad esempio:
Const
b = 30;
Begin
b := 40;
ShowMessage(IntToStr(b));
End;
Div
Declaration
dividend div divisor
Description
L'operatore Div esegue una divisione intera che scarta i risultati frazionari senza arrotondare. Se il divisore è zero, DelphiScript segnala un errore.
See also
Operatore Mod
Operatore Div
Do
Declaration
-
For variable := expression1 to expression2 doistruzione -
While expression doistruzione -
With expression doistruzione.
Description
La parola chiave Do fa parte delle istruzioni For, While and With di DelphiScript.
Example:
For i := 0 To AnIndex - 1 Do
S := S + #13 + AString;
See also
Parola chiave For
Parola chiave To
Parola chiave While
Parola chiave With
DownTo keyword
DownTo
Declaration
For variable := expression1 DownTo expression2 Do statement.
Description
Usare DownTo in un ciclo For per eseguire un conteggio decrescente.
See also
Parola chiave For
Parola chiave To
Parola chiave Do
Else
Declaration
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
Description
La parola chiave Else introduce la parte "catch-all" di diverse istruzioni. Si noti che la parte else di un'istruzione if è seguita da una singola istruzione, ma la parte else delle istruzioni try-except e case può contenere più istruzioni.
See also
Parola chiave If
Parola chiave Then
Parola chiave Try
Parola chiave Case
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
La parola chiave End termina un blocco o una parte multipla come dichiarazioni, istruzioni Case e così via.
See also
Parola chiave Begin
Parola chiave Case
Parola chiave Try
Except
Declaration
Try statements Except statements End;
Description
Usare i blocchi Try-Except per gestire casi eccezionali, ad esempio per intercettare eccezioni specifiche e fare qualcosa di utile con esse, come aggiungerle a un registro degli errori o creare una finestra di dialogo intuitiva. Poiché la parola chiave On non è supportata in DelphiScript, usare l'istruzione Raise all'interno del blocco Except e riportare solo un messaggio testuale.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
Parola chiave End
Parola chiave Finally
Parola chiave Try
Finally
Declaration
Try statements... Finally statements... End;
Description
La parola chiave finally avvia la parte finally di un blocco try-finally. Le istruzioni nel blocco finally vengono sempre eseguite, indipendentemente da come il controllo esce dal blocco try: eccezione, uscita o interruzione. Si consiglia l'uso del blocco try-finally quando si gestiscono la creazione/distruzione di oggetti e l'I/O dei file.
See also
Parola chiave End
Parola chiave Raise
Parola chiave Try
For
Declaration
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
Description
Un ciclo for valuta le espressioni che specificano i limiti di questo ciclo, quindi esegue ripetutamente il corpo del ciclo tramite la variabile di controllo del ciclo, che viene aggiornata dopo ogni iterazione.
Example:
For i := 0 to AnIndex - 1 Do
Begin
S := S + #13 + AString;
End;
ShowMessage(S);
See also
Parola chiave Do
Parola chiave DownTo
Parola chiave Repeat
Parola chiave To
Parola chiave While
Parola chiave With
Forward
Declaration
subroutine header; forward;
Description
La direttiva Forward consente di dichiarare una funzione o una procedura prima che venga chiamata, dichiarandone l'intestazione (nome, parametri e tipo restituito) con la direttiva forward.
Function
Declaration
Function name (parameters) : return type;
Description
Una Function è una sottoroutine che restituisce un valore. Si noti che negli script non sono consentiti puntatori a funzioni, cioè non è possibile definire tipi funzionali. Le variabili dichiarate all'interno di una funzione non sono accessibili all'esterno di questa procedura.
Example
Function TestFunc(Min, Max : integer) : integer;
Begin
Result := Random(Max - Min +1);
End;
Goto
Declaration
goto label
Description
L'istruzione goto trasferisce il controllo all'etichetta indicata. L'etichetta può essere qualsiasi identificatore o una stringa numerica composta da un massimo di quattro cifre.
Example
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Parola chiave Label
Declaration
-
if condition then statement; -
if condition then statement1 else statement2;
Description
La condizione per la parola chiave If deve essere un'espressione booleana. La parola chiave Else è facoltativa.
Example
If A > B Then
ShowMessage('X>Y and A > B');
Else
ShowMessage('X>Y and A <=B');
End;
See also
Parola chiave And
Parola chiave Begin
Parola chiave Or
Parola chiave Then
Parola chiave Else
Interface
Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;
Description
La parola chiave interface consente l'accesso a un oggetto esistente in memoria e richiama i metodi dell'oggetto. Un'interfaccia può essere composta solo da proprietà e metodi, senza dati. Poiché le interfacce non possono contenere dati, le loro proprietà devono scrivere e leggere tramite metodi. Ancora più importante, le interfacce non hanno implementazione, poiché definiscono solo un contratto verso un oggetto esistente in memoria.
Un'interfaccia può essere considerata come un punto di contatto con un oggetto esistente nella memoria del computer e offre la possibilità di leggere/scrivere dati tramite le proprietà dell'interfaccia. L'interfaccia richiede dati dal proprio oggetto associato.
DelphiScript è un linguaggio senza tipi; pertanto non è possibile definire nuovi tipi come nuovi record, array o classi, né le relative interfacce.
Label
Declaration
label digits, identifier, ...;
Description
La parola chiave label dichiara una o più etichette. Un'etichetta può essere una stringa numerica composta da un massimo di quattro cifre oppure un identificatore. Un'etichetta può essere usata nello stesso blocco per identificare un'istruzione come destinazione di un'istruzione goto.
Example:
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Parola chiave Goto
Declaration
Integer expression mod integer expression
Description
L'operatore mod esegue un'operazione di modulo intero o resto. Il risultato di A mod B è A - (A div B) * B.
See also
Funzione Div
Nil
Declaration
const nil = pointer(0);
Description
La parola chiave nil è uno speciale valore puntatore che è garantito essere distinto e non puntare a nulla.
Not
Declaration
-
not boolean expression -
not integer expression
Description
L'operatore not esegue una negazione. Se l'operando è di tipo booleano, il negativo è una negazione logica. Not False = True e not true = false. Se l'operando è un intero, l'operatore not esegue una negazione bit a bit di ciascun bit nel valore intero, cioè un'operazione di complemento.
Of
Declaration
case expression of
selector: expression1
...
end
Description
La parola chiave Of viene usata per l'istruzione case.
See also
Istruzione Case
Or
Declaration
-
boolean expression or boolean expression -
integer expression or integer expression
Description
L'operatore or esegue un OR logico se gli operandi sono di tipo booleano, oppure un OR bit a bit se gli operatori sono interi. Un OR logico è falso solo se entrambi gli operandi sono falsi; altrimenti è vero quando almeno uno degli operandi è vero.
See also
Parola chiave And
Parola chiave Not
Parola chiave Shl
Parola chiave Shr
Parola chiave Xor
Procedure
Declaration
-
Procedure name; -
Procedure Name (Parameter, ...);
Description
La parola chiave procedure dichiara una sottoroutine che non ha un tipo restituito. Le variabili dichiarate all'interno di una procedura non sono accessibili all'esterno di questa procedura. Si noti che questa parola chiave può essere usata ma viene ignorata dal sistema di scripting.
Example:
Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
Rand := Random(Max);
End;
See also
Parola chiave Function
Declaration
Program Name;
declarations...
Block
Description
La parola chiave program avvia uno script. L'estensione di file per uno script è *.pas. Si noti che questa parola chiave può essere usata ma viene ignorata dal sistema di scripting.
See also
Parola chiave Function
Declaration
Raise statement;
Description
La parola chiave raise è correlata alla parola chiave Try. La parola chiave Raise può essere usata senza parametri per rilanciare l'ultima eccezione. Può anche essere usata con un parametro stringa per generare un'eccezione usando un messaggio specifico.
Example:
Raise(Format('Invalid Value Entered : %d', \[Height]));
Si noti che la parola chiave On non è supportata in DelphiScript, quindi gli oggetti Exception non possono essere utilizzati negli script.
Repeat
Declaration
repeat
statements;
until boolean expression
Description
Le istruzioni all'interno di un blocco Repeat Until vengono eseguite ripetutamente finché l'espressione booleana non è vera.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Parola chiave Until
Result
Declaration
Var result : Function return type;
Description
Ogni funzione in uno script deve usare la parola chiave Result per restituire un valore risultante. Il tipo della variabile è il tipo restituito dalla funzione.
See also
Parola chiave Function
Shl
Declaration
value shl bits
Description
L'operatore shl esegue uno spostamento a sinistra di un valore intero di Bits posizioni di bit. I bit liberati vengono riempiti a destra con bit a zero.
See also
Parola chiave And
Parola chiave Not
Parola chiave Or
Parola chiave Shr
Parola chiave Xor
Shr
Declaration
value shr bits
Description
L'operatore shr esegue uno spostamento a destra di un valore intero di Bits posizioni di bit. I bit liberati vengono riempiti a sinistra con bit a zero.
See also
Parola chiave And
Parola chiave Not
Parola chiave Or
Parola chiave Shl
Parola chiave Xor
String
Declaration
-
type string; -
type Name = string[Constant]
Description
La parola chiave string rappresenta il tipo stringa.
Then
Declaration
If expression then statement
Description
La parola chiave Then fa parte di un'istruzione If.
See also
Parola chiave If
To
Declaration
For variable := expression1 to expression2 do statement
Description
La parola chiave to fa parte di un ciclo for con conteggio crescente.
Example
For i := 0 to AnIndex - 1 do
S := S + #13 + AString;
See also
Parola chiave Downto
Parola chiave For
Try
Declaration
-
Try statements finally statements end; -
Try statements except statements end;
Description
La parola chiave try introduce un'istruzione try-except o un'istruzione try-finally. Queste due istruzioni sono correlate ma hanno scopi diversi.
Try Finally
Le istruzioni nel blocco finally vengono sempre eseguite, indipendentemente da come il controllo esce dal blocco try: eccezione, Exit o Break. Usare il blocco try-finally per liberare oggetti temporanei e altre risorse e per eseguire attività di pulizia. In genere non è necessario più di un'istruzione try-finally in una subroutine.
Example:
Reset(F);
Try
... // process file F
Finally
CloseFile(F);
End;
Try Except
Usare try-except per gestire casi eccezionali, ad esempio per intercettare eccezioni specifiche e fare qualcosa di utile con esse, come aggiungerle a un registro degli errori o creare una finestra di dialogo intuitiva. Poiché la parola chiave On non è supportata in DelphiScript, usare l'istruzione Raise all'interno del blocco Except.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
Parola chiave Raise
Type
Declaration
Type Name = type declaration ...
Description
La parola chiave Type dichiara il tipo di una variabile. Poiché DelphiScript è un linguaggio senza tipi, non è necessario dichiarare variabili di un tipo specifico, ma ciò può essere fatto per migliorare la leggibilità degli script. Tutte le variabili in uno script sono sempre di tipo Variant. La principale limitazione nella scrittura di script è che non è possibile dichiarare record o classi.
Il typecasting viene ignorato negli script, quindi i tipi nella dichiarazione delle variabili vengono ignorati e possono essere omessi. Queste dichiarazioni sono quindi corrette:
Example:
var a : integer;
var b : integer;
var c, d;
I tipi dei parametri nella dichiarazione di procedure/funzioni vengono ignorati e possono essere omessi. Ad esempio, questo codice è corretto:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
In generale, i variant possono essere usati per memorizzare qualsiasi tipo di dato ed eseguire numerose operazioni e conversioni di tipo. Un variant viene controllato e calcolato in fase di esecuzione. Il compilatore non avviserà di possibili errori nel codice, che possono essere rilevati solo con test approfonditi. Nel complesso, le porzioni di codice che usano variant possono essere considerate codice interpretato, perché molte operazioni non possono essere risolte fino al run time. Questo può influire sulla velocità del codice.
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
Parola chiave Var
Unit
Declaration
-
Unit Name;
interface
declarations
implementation
declarations
statements
Initialization
statements
finalization
statements
end.
-
Unit Name;
interface
declarations
implementation
declarations
statements
begin
statements
end.
La parola chiave unit introduce una unit, che è il modulo di base per uno script. Si noti che questa parola chiave può essere usata ma viene ignorata dal sistema di scripting.
See also
Parola chiave Function
Parola chiave Program
Until
Declaration
Repeat
Statements;
Until boolean expression
Description
La parola chiave until segna la fine del blocco Repeat-Until. Le istruzioni all'interno di un blocco Repeat-Until vengono eseguite ripetutamente finché l'espressione booleana non è vera.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Parola chiave Repeat
Uses
Declaration
Uses Unit Name, ...;
Description
La parola chiave uses elenca i nomi delle unit importate nell'unit circostante. La dichiarazione uses è facoltativa perché il sistema di scripting supporta le unit importate in Altium Designer. È possibile includere la dichiarazione uses per migliorare la leggibilità.
Tutte le unit memorizzate nello stesso progetto possono accedere alle variabili globali di una qualsiasi di queste unit. Tenerlo presente quando si dichiarano variabili nelle unit all'interno dello stesso progetto.
Le API Client, PCB, Schematic e WorkSpace Manager di Altium Designer e le unit SysUtils, Classes e altre di Delphi sono importate e disponibili per l'uso negli script, quindi non è necessario dichiarare specificamente queste unit negli script.
See also
Per informazioni più dettagliate sull'API di Altium Designer, fare riferimento alla documentazione Using the Altium Designer API.
Var
Declaration
Name : Type
Name : Type = Expression;
DelphiScript Variables
Tutte le variabili in uno script sono sempre di tipo Variant. Il typecasting viene ignorato. I tipi nella dichiarazione delle variabili vengono ignorati e possono essere omessi, quindi queste dichiarazioni sono corrette:
Var a : integer;
Var b : integer;
Var c, d;
I tipi dei parametri nella dichiarazione di procedure/funzioni vengono ignorati e possono essere omessi. Ad esempio, questo codice è corretto:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
In generale, i variant possono essere usati per memorizzare qualsiasi tipo di dato ed eseguire numerose operazioni e conversioni di tipo. Un variant viene controllato e calcolato in fase di esecuzione. Il compilatore non avviserà di possibili errori nel codice, che possono essere rilevati solo con test approfonditi. Nel complesso, le porzioni di codice che usano variant possono essere considerate codice interpretato, perché molte operazioni non possono essere risolte fino al run time. Questo può influire sulla velocità del codice.
Dichiarazione di una variabile 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
il tipo degli elementi dell'array viene ignorato e può essere omesso, quindi queste dichiarazioni sono equivalenti:
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
L'istruzione while esegue ripetutamente l'istruzione finché l'espressione è vera.
See also
Parola chiave Break
Parola chiave Continue
Parola chiave Do
Parola chiave DownTo
Parola chiave For
Parola chiave Repeat
Parola chiave To
Parola chiave With
With
Declaration
with expression do statement
Description
L'istruzione With aggiunge un riferimento a record, oggetto, classe o interfaccia all'ambito per la risoluzione dei nomi dei simboli.
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
Parola chiave Do
Xor
Declaration
- espressione booleana Xor espressione booleana
-
integer expression Xor integer expression
Description
L'operatore xor esegue un OR esclusivo sui suoi operandi. Se gli operandi sono di tipo booleano, restituisce un risultato booleano: true se gli operandi sono diversi e false se sono uguali.
Uno xor intero opera su ciascun bit dei suoi operandi, impostando il bit del risultato a 1 se i bit corrispondenti nei due operandi sono diversi, e a 0 se entrambi gli operandi hanno bit identici. Se un operando è più piccolo dell'altro, l'operando più piccolo viene esteso con 0 nei bit più a sinistra.
See also
Parola chiave And
Parola chiave Not
Parola chiave Or
Parola chiave Shl
Parola chiave Shr