Słowa kluczowe
To opracowanie obejmuje słowa kluczowe DelphiScript używane w systemie skryptowym w Altium Designer. System skryptowy obsługuje język DelphiScript, który jest bardzo podobny do języka programowania Embarcadero Delphi™. Kluczowa różnica polega na tym, że DelphiScript jest beztypowym językiem skryptowym.
W tej sekcji przedstawiono typowe słowa kluczowe DelphiScript wraz ze szczegółowymi informacjami i przykładami. Więcej informacji o słowach kluczowych, takich jak procedury obsługi plików Delphi, funkcje matematyczne oraz procedury obsługi łańcuchów, znajdziesz w Functions oraz w Embarcadero Delphi Reference.
And
Declaration
Operator And wykonuje logiczne/bitowe AND.
Description
Operator And wykonuje logiczne AND, jeśli operandy są typu boolean, lub bitowe And, jeśli operandy są liczbami całkowitymi.
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
Słowo kluczowe Or
Słowo kluczowe Xor
Array
Declaration
Array [index range];
Description
Język DelphiScript jest językiem beztypowym, dlatego rozmiar lub zakres tablicy musi zostać określony. Nadal można zdefiniować, jakiego typu elementy tablica może przechowywać, ale nie jest to konieczne. Deklaracja Open array nie jest obsługiwana.
Example:
var x : array [1..2];
Begin
Declaration
Begin
statement
End;
Description
Słowo kluczowe begin rozpoczyna blok w skrypcie. Blok jest główną częścią skryptu i może zawierać dowolną liczbę instrukcji; można go użyć wszędzie tam, gdzie wymagana jest pojedyncza instrukcja, np. jako ciało instrukcji warunkowej lub pętli.
Example:
Var
Test : Integer;
Begin
Test := Test + 4;
ShowMessage(IntToStr(Test));
End;
See also
Słowo kluczowe End
Break
Declaration
Break;
Description
Instrukcja Break przerywa pętlę, podobnie jak instrukcja Goto.
Example:
While Condition Do
Begin
DoSomething;
Begin
If AnotherCondition Then
Break;
End;
End;
See also
Słowo kluczowe While
Słowo kluczowe Continue
Słowo kluczowe Do
Słowo kluczowe Repeat
Case
Declaration
Case expression Of
Value range : Expression;
Else Expression;
End;
Description
Instrukcje Case wybierają jedną gałąź spośród wielu możliwych, w zależności od wartości wyrażenia.
W wielu sytuacjach złożony zestaw instrukcji If można uprościć, zastępując je instrukcjami Case. Instrukcja case w wyrażeniu służy do wyboru wartości, listy możliwych wartości lub zakresu wartości. W instrukcji case można używać dowolnych typów, ponieważ DelphiScript jest językiem beztypowym. Instrukcje Case mogą zawierać instrukcję else, która jest wykonywana, jeśli żadna etykieta nie odpowiada wartości selektora (w ramach warunku 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
Słowo kluczowe Of
Continue
Declaration
Continue
Description
Instrukcja Continue pomija ciało pętli, podobnie jak instrukcja 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
Słowo kluczowe Break
Słowo kluczowe While
Słowo kluczowe Continue
Słowo kluczowe Do
Słowo kluczowe Repeat
Const
Declaration
Const
Name = Expression;
Description
Słowo kluczowe Const określa dowolne wyrażenie o stałej wartości jako wartość stałej. Jeśli spróbujesz zmodyfikować wyrażenie typu const w skrypcie, system skryptowy zgłosi błąd niezadeklarowanego identyfikatora.
Example:
Const
b = 30;
Begin
ShowMessage(IntTtStr(b));
End;
Próba zmiany wartości parametru b const spowoduje wygenerowanie błędu, na przykład:
Const
b = 30;
Begin
b := 40;
ShowMessage(IntToStr(b));
End;
Div
Declaration
dividend div divisor
Description
Operator Div wykonuje dzielenie całkowite, odrzucając część ułamkową bez zaokrąglania. Jeśli dzielnik wynosi zero, DelphiScript zgłasza błąd.
See also
Operator Mod
Operator Div
Declaration
-
For variable := expression1 to expression2 doinstrukcja -
While expression doinstrukcja -
With expression doinstrukcja.
Description
Słowo kluczowe Do jest częścią instrukcji For, While and With w DelphiScript.
Example:
For i := 0 To AnIndex - 1 Do
S := S + #13 + AString;
See also
Słowo kluczowe For
Słowo kluczowe To
Słowo kluczowe While
Słowo kluczowe With
Słowo kluczowe DownTo
DownTo
Declaration
For variable := expression1 DownTo expression2 Do statement.
Description
Użyj DownTo w pętli For, aby odliczać w dół.
See also
Słowo kluczowe For
Słowo kluczowe To
Słowo kluczowe Do
Else
Declaration
-
If condition then statement Else statement -
Try statement except exception Else statement end -
Case expression of Else end;
Description
Słowo kluczowe Else wprowadza część „w przeciwnym razie” (catch-all) w kilku instrukcjach. Zwróć uwagę, że część else instrukcji if jest następowana pojedynczą instrukcją, natomiast część else instrukcji try-except i case może zawierać wiele instrukcji.
See also
Słowo kluczowe If
Słowo kluczowe Then
Słowo kluczowe Try
Słowo kluczowe 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
Słowo kluczowe End kończy blok lub część wieloelementową, taką jak deklaracje, instrukcje Case itd.
See also
Słowo kluczowe Begin
Słowo kluczowe Case
Słowo kluczowe Try
Except
Declaration
Try statements Except statements End;
Description
Używaj bloków Try-Except do obsługi sytuacji wyjątkowych, np. aby przechwycić konkretne wyjątki i zrobić z nimi coś użytecznego, jak dodanie ich do dziennika błędów lub utworzenie przyjaznego okna dialogowego. Ponieważ słowo kluczowe On nie jest obsługiwane w DelphiScript, użyj instrukcji Raise wewnątrz bloku Except i zgłaszaj wyłącznie komunikat tekstowy.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
Słowo kluczowe End
Słowo kluczowe Finally
Słowo kluczowe Try
Finally
Declaration
Try statements... Finally statements... End;
Description
Słowo kluczowe finally rozpoczyna część finally bloku try-finally. Instrukcje w bloku finally są wykonywane zawsze, niezależnie od tego, w jaki sposób sterowanie opuszcza blok try — przez wyjątek, exit lub break. Zaleca się używanie bloku try-finally podczas tworzenia/niszczenia obiektów oraz operacji wejścia/wyjścia plików (File IO).
See also
Słowo kluczowe End
Słowo kluczowe Raise
Słowo kluczowe Try
For
Declaration
-
for variable := expression1 to expression2 do statement -
for variable := expression1 downto expression2 do statement
Description
Pętla for oblicza wyrażenia określające granice tej pętli, a następnie wielokrotnie wykonuje ciało pętli za pomocą zmiennej sterującej, która jest aktualizowana po każdej iteracji.
Example:
For i := 0 to AnIndex - 1 Do
Begin
S := S + #13 + AString;
End;
ShowMessage(S);
See also
Słowo kluczowe Do
Słowo kluczowe DownTo
Słowo kluczowe Repeat
Słowo kluczowe To
Słowo kluczowe While
Słowo kluczowe With
Forward
Declaration
subroutine header; forward;
Description
Dyrektywa Forward umożliwia zadeklarowanie funkcji lub procedury przed jej wywołaniem poprzez zadeklarowanie nagłówka (nazwa, parametry i typ zwracany) z dyrektywą forward.
Function
Declaration
Function name (parameters) : return type;
Description
Function to podprogram, który zwraca wartość. Zwróć uwagę, że wskaźniki do funkcji nie są dozwolone w skryptach — tzn. nie można definiować typów funkcyjnych. Zmienne zadeklarowane wewnątrz funkcji nie są dostępne poza tą procedurą.
Example
Function TestFunc(Min, Max : integer) : integer;
Begin
Result := Random(Max - Min +1);
End;
Goto
Declaration
goto label
Description
Instrukcja goto przekazuje sterowanie do podanej etykiety. Etykieta może być dowolnym identyfikatorem lub ciągiem cyfr o długości do czterech cyfr.
Example
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Słowo kluczowe Label
If
Declaration
-
if condition then statement; -
if condition then statement1 else statement2;
Description
Warunek dla słowa kluczowego If musi być wyrażeniem boolowskim. Słowo kluczowe Else jest opcjonalne.
Example
If A > B Then
ShowMessage('X>Y and A > B');
Else
ShowMessage('X>Y and A <=B');
End;
See also
Słowo kluczowe And
Słowo kluczowe Begin
Słowo kluczowe Or
Słowo kluczowe Then
Słowo kluczowe Else
Interface
Declaration
Interface
// Globally unique identifier string.
Methods
Properties
End;
Description
Słowo kluczowe interface umożliwia dostęp do istniejącego obiektu w pamięci i wywołuje metody obiektu. Interfejs może składać się wyłącznie z właściwości i metod — bez danych. Ponieważ interfejsy nie mogą zawierać danych, ich właściwości muszą zapisywać i odczytywać poprzez metody. Co najważniejsze, interfejsy nie mają implementacji, ponieważ definiują jedynie kontrakt dla istniejącego obiektu w pamięci.
Interfejs można traktować jako punkt kontaktu z istniejącym obiektem w pamięci komputera; oferuje on możliwość odczytu/zapisu danych poprzez właściwości interfejsu. Interfejs żąda danych od powiązanego z nim obiektu.
DelphiScript jest językiem beztypowym, dlatego nie można definiować nowych typów, takich jak nowe rekordy, tablice czy klasy, ani powiązanych z nimi interfejsów.
Label
Declaration
label digits, identifier, ...;
Description
Słowo kluczowe label deklaruje jedną lub więcej etykiet. Etykieta może być ciągiem cyfr o długości do czterech cyfr lub identyfikatorem. Etykieta może być użyta w tym samym bloku do oznaczenia instrukcji jako celu instrukcji goto.
Example:
Label StartHere;
// code
StartHere: //do anything;
Goto StartHere;
See also
Słowo kluczowe Goto
Mod
Declaration
Integer expression mod integer expression
Description
Operator mod wykonuje operację modulo (reszty) dla liczb całkowitych. Wynik A mod B to A - (A div B) * B.
See also
Funkcja Div
Nil
Declaration
const nil = pointer(0);
Description
Słowo kluczowe nil jest specjalną wartością wskaźnika, która jest gwarantowanie unikalna i nie wskazuje na nic.
Not
Declaration
-
not boolean expression -
not integer expression
Description
Operator not wykonuje negację. Jeśli operand jest typu boolean, negacja jest negacją logiczną. Not False = True i not true = false. Jeśli operand jest liczbą całkowitą, operator not wykonuje bitową negację każdego bitu w wartości całkowitej — czyli operację dopełnienia.
Of
Declaration
case expression of
selector: expression1
...
end
Description
Słowo kluczowe Of jest używane w instrukcji case.
See also
Instrukcja Case
Or
Declaration
-
boolean expression or boolean expression -
integer expression or integer expression
Description
Operator or wykonuje logiczne Or, jeśli operandy są typu boolean, lub bitowe Or, jeśli operandy są liczbami całkowitymi. Logiczne Or jest fałszywe tylko wtedy, gdy oba operandy są fałszywe; w przeciwnym razie jest prawdziwe, gdy co najmniej jeden operand jest prawdziwy.
See also
Słowo kluczowe And
Słowo kluczowe Not
Słowo kluczowe Shl
Słowo kluczowe Shr
Słowo kluczowe Xor
Procedure
Declaration
-
Procedure name; -
Procedure Name (Parameter, ...);
Description
Słowo kluczowe procedure deklaruje podprogram, który nie ma typu zwracanego. Zmienne zadeklarowane wewnątrz procedury nie są dostępne poza tą procedurą. Zwróć uwagę, że to słowo kluczowe może być użyte, ale jest ignorowane przez system skryptowy.
Example:
Procedure TestRand(Var Rand: Integer; Max : Integer);
Begin
Rand := Random(Max);
End;
See also
Słowo kluczowe Function
Program
Declaration
Program Name;
declarations...
Block
Description
Słowo kluczowe program rozpoczyna skrypt. Rozszerzenie pliku skryptu to *.pas. Zwróć uwagę, że to słowo kluczowe może być użyte, ale jest ignorowane przez system skryptowy.
See also
Słowo kluczowe Function
Raise
Declaration
Raise statement;
Description
Słowo kluczowe raise jest powiązane ze słowem kluczowym Try. Słowo kluczowe Raise może być użyte bez parametrów, aby ponownie zgłosić ostatni wyjątek. Może też być użyte z parametrem typu string, aby zgłosić wyjątek z określonym komunikatem.
Example:
Raise(Format('Invalid Value Entered : %d', \[Height]));
Zwróć uwagę, że słowo kluczowe On nie jest obsługiwane w DelphiScript, więc obiekty Exception nie mogą być używane w skryptach.
Repeat
Declaration
repeat
statements;
until boolean expression
Description
Instrukcje wewnątrz bloku Repeat Until są wykonywane wielokrotnie, aż wyrażenie logiczne będzie prawdziwe.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Słowo kluczowe Until
Result
Declaration
Var result : Function return type;
Description
Każda funkcja w skrypcie musi używać słowa kluczowego Result, aby zwrócić wartość wynikową. Typ zmiennej jest typem zwracanym funkcji.
See also
Słowo kluczowe Function
Shl
Declaration
value shl bits
Description
Operator shl wykonuje przesunięcie w lewo wartości całkowitej o Bits pozycji bitowych. Zwolnione bity są wypełniane z prawej strony bitami zerowymi.
See also
Słowo kluczowe And
Słowo kluczowe Not
Słowo kluczowe Or
Słowo kluczowe Shr
Słowo kluczowe Xor
Shr
Declaration
value shr bits
Description
Operator shr wykonuje przesunięcie w prawo wartości całkowitej o Bits pozycji bitowych. Zwolnione bity są wypełniane z lewej strony bitami zerowymi.
See also
Słowo kluczowe And
Słowo kluczowe Not
Słowo kluczowe Or
Słowo kluczowe Shl
Słowo kluczowe Xor
String
Declaration
-
type string; -
type Name = string[Constant]
Description
Słowo kluczowe string reprezentuje typ łańcuchowy (string).
Then
Declaration
If expression then statement
Description
Słowo kluczowe Then jest częścią instrukcji If.
See also
Słowo kluczowe If
To
Declaration
For variable := expression1 to expression2 do statement
Description
Słowo kluczowe to jest częścią pętli for, która zlicza w górę.
Example
For i := 0 to AnIndex - 1 do
S := S + #13 + AString;
See also
Słowo kluczowe Downto
Słowo kluczowe For
Try
Declaration
-
Try statements finally statements end; -
Try statements except statements end;
Description
Słowo kluczowe try wprowadza instrukcję try-except lub instrukcję try-finally. Te dwie instrukcje są powiązane, ale służą różnym celom.
Try Finally
Instrukcje w bloku finally są zawsze wykonywane, niezależnie od tego, w jaki sposób sterowanie opuszcza blok try: wyjątek, Exit lub Break. Użyj bloku try-finally, aby zwolnić obiekty tymczasowe i inne zasoby oraz wykonać czynności porządkowe. Zwykle w podprogramie nie potrzebujesz więcej niż jednej instrukcji try-finally.
Example:
Reset(F);
Try
... // process file F
Finally
CloseFile(F);
End;
Try Except
Użyj try-except do obsługi sytuacji wyjątkowych, na przykład do przechwytywania konkretnych wyjątków i wykonania na nich czegoś użytecznego, takiego jak dodanie ich do dziennika błędów lub utworzenie przyjaznego okna dialogowego. Ponieważ słowo kluczowe On nie jest obsługiwane w DelphiScript, użyj instrukcji Raise wewnątrz bloku Except.
Example:
Try
X := Y/Z;
Except
Raise('A divide by zero error!');
End;
See also
Słowo kluczowe Raise
Type
Declaration
Type Name = type declaration ...
Description
Słowo kluczowe Type deklaruje typ zmiennej. Ponieważ DelphiScript jest językiem beztypowym, nie ma potrzeby deklarowania zmiennych o określonym typie, ale można to zrobić dla czytelności skryptów. Wszystkie zmienne w skrypcie są zawsze typu Variant. Głównym ograniczeniem przy pisaniu skryptów jest to, że nie można deklarować rekordów ani klas.
Rzutowanie typów jest ignorowane w skryptach, więc typy w deklaracji zmiennych są ignorowane i można je pominąć. W związku z tym poniższe deklaracje są poprawne:
Example:
var a : integer;
var b : integer;
var c, d;
Typy parametrów w deklaracji procedury/funkcji są ignorowane i można je pominąć. Na przykład poniższy kod jest poprawny:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
Ogólnie rzecz biorąc, warianty (Variant) mogą być używane do przechowywania dowolnego typu danych oraz wykonywania licznych operacji i konwersji typów. Wariant jest sprawdzany typowo i obliczany w czasie wykonywania. Kompilator nie ostrzeże o możliwych błędach w kodzie, które można wykryć jedynie poprzez rozbudowane testy. Zasadniczo fragmenty kodu używające wariantów można traktować jako kod interpretowany, ponieważ wiele operacji nie może zostać rozstrzygniętych aż do czasu wykonania. Może to wpływać na szybkość działania kodu.
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
Słowo kluczowe 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.
Słowo kluczowe unit wprowadza unit, który jest podstawowym modułem skryptu. Zwróć uwagę, że tego słowa kluczowego można użyć, ale jest ono ignorowane przez system skryptowy.
See also
Słowo kluczowe Function
Słowo kluczowe Program
Until
Declaration
Repeat
Statements;
Until boolean expression
Description
Słowo kluczowe until oznacza koniec bloku Repeat-Until. Instrukcje wewnątrz bloku Repeat-Until są wykonywane wielokrotnie, aż wyrażenie logiczne będzie prawdziwe.
Example:
Repeat
Write('Enter a value (0..9): ');
ShowMessage(IntToStr(I));
Until (I >= 0) and (I <= 9);
See also
Słowo kluczowe Repeat
Uses
Declaration
Uses Unit Name, ...;
Description
Słowo kluczowe uses wymienia nazwy unitów importowanych do otaczającego unitu. Deklaracja uses jest opcjonalna, ponieważ system skryptowy obsługuje unity importowane w Altium Designer. Możesz dołączyć deklarację uses dla czytelności.
Wszystkie unity przechowywane w ramach tego samego projektu mogą uzyskiwać dostęp do zmiennych globalnych z dowolnego z tych unitów. Miej to na uwadze podczas deklarowania zmiennych w unitach w obrębie tego samego projektu.
API Client, PCB, Schematic oraz WorkSpace Manager w Altium Designer, a także unity Delphi: SysUtils, Classes i inne, są importowane i dostępne do użycia w skryptach — nie ma więc szczególnej potrzeby deklarowania tych unitów w skryptach.
See also
Aby uzyskać bardziej szczegółowe informacje o API Altium Designer, zapoznaj się z dokumentacją Using the Altium Designer API.
Var
Declaration
Name : Type
Name : Type = Expression;
DelphiScript Variables
Wszystkie zmienne w skrypcie są zawsze typu Variant. Rzutowanie typów jest ignorowane. Typy w deklaracji zmiennych są ignorowane i można je pominąć, więc poniższe deklaracje są poprawne:
Var a : integer;
Var b : integer;
Var c, d;
Typy parametrów w deklaracji procedury/funkcji są ignorowane i można je pominąć. Na przykład poniższy kod jest poprawny:
Function sum(a, b) : integer;
Begin
Result := a + b;
End;
Ogólnie rzecz biorąc, warianty (Variant) mogą być używane do przechowywania dowolnego typu danych oraz wykonywania licznych operacji i konwersji typów. Wariant jest sprawdzany typowo i obliczany w czasie wykonywania. Kompilator nie ostrzeże o możliwych błędach w kodzie, które można wykryć jedynie poprzez rozbudowane testy. Zasadniczo fragmenty kodu używające wariantów można traktować jako kod interpretowany, ponieważ wiele operacji nie może zostać rozstrzygniętych aż do czasu wykonania. Może to wpływać na szybkość działania kodu.
Deklarowanie zmiennej typu 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
typ elementów tablicy jest ignorowany i można go pominąć, więc poniższe deklaracje są równoważne:
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
Instrukcja while wielokrotnie wykonuje instrukcję, dopóki wyrażenie jest prawdziwe.
See also
Słowo kluczowe Break
Słowo kluczowe Continue
Słowo kluczowe Do
Słowo kluczowe DownTo
Słowo kluczowe For
Słowo kluczowe Repeat
Słowo kluczowe To
Słowo kluczowe With
With
Declaration
with expression do statement
Description
Instrukcja With dodaje odwołanie do rekordu, obiektu, klasy lub interfejsu do zakresu w celu rozwiązywania nazw symboli.
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
Słowo kluczowe Do
Xor
Declaration
- wyrażenie logiczne Xor wyrażenie logiczne
-
integer expression Xor integer expression
Description
Operator xor wykonuje alternatywę wykluczającą (Exclusive Or) na swoich operandach. Jeśli operandy są typu logicznego, zwraca wynik logiczny — true, jeśli operandy są różne, oraz false, jeśli są takie same.
Dla liczb całkowitych xor działa na każdym bicie operandów, ustawiając bit wyniku na 1, jeśli odpowiadające sobie bity w obu operandach są różne, oraz na 0, jeśli oba operandy mają identyczne bity. Jeśli jeden operand jest mniejszy od drugiego, mniejszy operand jest rozszerzany o 0 w najbardziej lewych bitach.
See also
Słowo kluczowe And
Słowo kluczowe Not
Słowo kluczowe Or
Słowo kluczowe Shl
Słowo kluczowe Shr