Wyrażenia i operatory

Instrukcje w DelphiScript

Instrukcja w języku DelphiScript jest uznawana za „prostą”, jeśli nie zawiera żadnych innych instrukcji. Przykładami prostych instrukcji są instrukcje przypisania i wywołania procedur.

Simple statements:

X := Y + 10; // assignment

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

Instrukcja złożona składa się z wielu instrukcji.

Compound statements:

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

W języku DelphiScript przy przypisywaniu wartości do zmiennych stosuje się operator dwukropka-równa się: :=

Podczas sprawdzania równości stosuje się operator równości: =

Instrukcje warunkowe

DelphiScript posiada instrukcje sterujące, które wpływają na przebieg wykonywania skryptu. Najpopularniejszą instrukcją sterującą jest If..Then instrukcja warunkowa.

Instrukcja If Then

Instrukcja If..Then służy do sterowania warunkowego. Składnia jest następująca:

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

Instrukcja „Case Of”

Aby uniknąć złożonego zestawu If instrukcji, często można je zastąpić Case instrukcji. 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 z etykiet 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;

Instrukcja With

Instrukcja With „with” jest skrótem w DelphiScript. Odwołując się do zmiennej typu rekord (lub obiektu), można użyć instrukcji „with” zamiast za każdym razem powtarzać jej nazwę.

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;

Pętla For To Do

Pętla For..To..Do instrukcja umożliwia wielokrotne przechodzenie przez blok kodu (jedną lub więcej linii kodu). Podstawowa składnia jest następująca:

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

For Pętle są często używane do inicjalizacji tablicy. Kierunek liczenia w For..To..Do pętli można kontrolować, stosując na przemian słowo kluczowe DownTo słowa kluczowego, które zmniejsza liczbę powtórzeń pętli. DelphiScript udostępnia instrukcję Break/Exit, która pozwala przedwcześnie zakończyć For..To..Do pętli przed czasem.

Pętla „Repeat Until”

Instrukcja Repeat instrukcja jest wykonywana wielokrotnie, dopóki wyrażenie logiczne nie będzie miało wartości prawdziwej. Repeat Instrukcja jest zawsze wykonywana co najmniej raz.

Example:

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

Pętla „While Do”

Instrukcja While instrukcja jest podobna do Repeat , z tą różnicą, że warunek sterujący jest oceniany przed pierwszym wykonaniem sekwencji instrukcji. W związku z tym, jeśli warunek jest fałszywy, sekwencja instrukcji nigdy nie zostanie wykonana.

Example:

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

Instrukcja „Continue”

Instrukcja Continue Skakuje nad treścią pętli, podobnie jak Goto . Instrukcja continue powoduje, że wykonywany skrypt przechodzi do następnej iteracji w bieżącej For, While lub Repeat pętli.

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;

Instrukcja goto z etykietą

Instrukcja Goto instrukcja ma postać Goto label , która przenosi wykonanie skryptu do instrukcji oznaczonej podaną etykietą. Aby oznaczyć instrukcję, należy najpierw zadeklarować etykietę, a następnie umieścić instrukcję docelową poprzedzoną etykietą i dwukropkiem: label: statement

Etykietą może być dowolny prawidłowy identyfikator. Deklaracja etykiety oraz Goto instrukcja muszą należeć do tego samego bloku kodu w ramach skryptu. Dlatego nie jest możliwe wykonanie skoku do procedury lub funkcji ani z nich.

Example:

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

Instrukcja Exit

Instrukcja Exit natychmiastowo powoduje powrót z funkcji lub procedury. Jeśli wywołasz Exit z poziomu Try..Finally bloku, część Finally część zostanie wykonana przed powrotem podprogramu. Jeśli Exit procedura zostanie wywołana z poziomu głównej części skryptu, wykonanie skryptu zostanie zakończone.

Example:

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

Instrukcja break

Instrukcja Break sprawia, że wykonywany skrypt opuszcza bieżącą For, While lub Repeat pętli. Wykonanie skryptu jest kontynuowane od kolejnej linii wykonywalnej po bieżącej pętli.

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;

Operatory wyrażeń w DelphiScript

Ogólnie rzecz biorąc, wyrażenie to poprawna kombinacja stałych, zmiennych, wartości literałowych, operatorów i wyników funkcji. Wyrażenia służą do określania wartości, jaką należy przypisać do zmiennej, do obliczania parametru funkcji lub do sprawdzania warunku. Wyrażenia mogą zawierać wywołania funkcji.

DelphiScript posiada szereg operatorów logicznych, arytmetycznych, boolowskich i relacyjnych. Operatorzy ci są pogrupowani według kolejności pierwszeństwa (patrz poniżej), która różni się od kolejności pierwszeństwa stosowanej w językach Basic, C itp. Na przykład operator AND i OR mają wyższy priorytet w stosunku do operatora relacyjnego.

Jeśli napiszesz a, DelphiScript wykona najpierw operację AND operację, co spowoduje błąd. Aby uniknąć tego problemu i zdefiniować priorytet, każde wyrażenie musi być ujęte w nawiasy: (a;

Obsługiwane operatory DelphiScript wymienione poniżej są przedstawione według ich kolejności pierwszeństwa.

Operatory pogrupowane według pierwszeństwa

Należy pamiętać, że najwyższy priorytet mają operatory jednoargumentowe.

Not

Logiczne lub bitowe NOT.

Multiplicative and Bitwise Operators

*

Mnożenie arytmetyczne.

/

Dzielenie zmiennoprzecinkowe.

div

Dzielenie liczb całkowitych.

mod

Moduł (reszta z dzielenia całkowitoliczbowego).

and

Logiczne lub bitowe „AND”.

shl

Przesunięcie bitowe w lewo.

shr

Przesunięcie bitowe w prawo.

Additive Operators

+

Dodawanie arytmetyczne, konkatenacja ciągów znaków.

-

Odejmowanie arytmetyczne.

or

Logiczne lub bitowe OR

xor

Logiczne „lub” (bitowe „wykluczające OR”).

Relational and Comparison Operators (lowest precedence)

=

Sprawdź, czy są równe, czy nie.

>

Sprawdź, czy nie jest równe.

Sprawdź, czy jest mniejsze, czy nie.

>

Sprawdź, czy jest większe, czy nie.

=

Sprawdź, czy jest mniejsze lub równe, czy nie.

>=

Sprawdź, czy jest większe lub równe, czy nie.

Należy również pamiętać, że ^ i @ nie są obsługiwane przez DelphiScript.

AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Dostępność funkcji

Dostępne funkcje zależą od tego, z którego rozwiązania Altium korzystasz – Altium Develop, Altium Agile Teams, Altium Agile Enterprise lub Altium Designer (w ramach aktywnej subskrypcji terminowej).

Jeśli opisana funkcja nie jest widoczna w Twoim oprogramowaniu, skontaktuj się z działem sprzedaży Altium, aby dowiedzieć się więcej.

Starsza dokumentacja

Dokumentacja Altium Designer nie jest już wersjonowana. Jeśli potrzebujesz dostępu do dokumentacji dla starszych wersji Altium Designer, odwiedź sekcję Starsza dokumentacja na stronie Inne instalatory.

Content