Anweisungen und Operatoren

DelphiScript-Anweisungen

Eine Anweisung in DelphiScript gilt als „einfach“, wenn sie keine weiteren Anweisungen enthält. Beispiele für einfache Anweisungen sind Zuweisungsanweisungen und Prozeduraufrufe.

Simple statements:

X := Y + 10; // assignment

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

Eine zusammengesetzte Anweisung besteht aus mehreren Anweisungen.

Compound statements:

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

Wenn in DelphiScript Variablen Werte zugewiesen werden, wird der Doppelpunkt-Gleichheitsoperator verwendet: :=

Zum Prüfen der Gleichheit wird der Gleichheitsoperator verwendet: =

Bedingungsanweisungen

DelphiScript verfügt über Steueranweisungen, die den Ablauf innerhalb eines Skripts beeinflussen. Die häufigste Steueranweisung ist die If..Then Bedingungsanweisung.

If-Then-Anweisung

Die If..Then Anweisung wird zur bedingten Steuerung verwendet. Die Syntax lautet:

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

Case-Of-Anweisung

Um eine komplexe Reihe von If Anweisungen kann diese oft durch Case Anweisungen ersetzt werden. Eine Case-Anweisung in einem Ausdruck dient dazu, einen Wert, eine Liste möglicher Werte oder einen Wertebereich auszuwählen.

In einer Case-Anweisung können beliebige Typen verwendet werden, da DelphiScript eine typfreie Sprache ist. Case-Anweisungen können eine Else-Anweisung enthalten, die ausgeführt wird, wenn keine der Bezeichnungen dem Wert des Selektors (innerhalb der Case-Of-Bedingung) entspricht.

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;

With-Anweisung

Die With „With“-Anweisung ist eine Kurzschreibweise in DelphiScript. Beim Verweis auf eine Variable vom Typ „Record“ (oder ein Objekt) kann eine „With“-Anweisung verwendet werden, anstatt den Namen jedes Mal zu wiederholen.

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;

„For“-„To“-„Do“-Schleife

Die For..To..Do Anweisung bietet eine Möglichkeit, einen Codeblock (eine oder mehrere Codezeilen) wiederholt zu durchlaufen. Die grundlegende Syntax lautet:

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

For Schleifen werden häufig zur Initialisierung eines Arrays verwendet. Die Richtung des Zählers in einer For..To..Do Schleife lässt sich durch abwechselnde Verwendung des DownTo Schlüsselworts, um die Schleife zu dekrementieren. DelphiScript bietet die Anweisung „Break/Exit“, um eine For..To..Do Schleife vorzeitig zu beenden.

„Repeat Until“-Schleife

Die Repeat Anweisung wird so lange wiederholt ausgeführt, bis der boolesche Ausdruck wahr ist. Die Repeat Anweisung wird immer mindestens einmal ausgeführt.

Example:

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

„While Do“-Schleife

Eine While Anweisung ähnelt einer Repeat Anweisung, mit dem Unterschied, dass die Steuerbedingung vor der ersten Ausführung der Anweisungssequenz ausgewertet wird. Ist die Bedingung also falsch, wird die Anweisungssequenz niemals ausgeführt.

Example:

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

„Continue“-Anweisung

Die Continue Anweisung überspringt den Körper einer Schleife, ähnlich wie die Goto Anweisung. Die Continue-Anweisung bewirkt, dass das ausgeführte Skript zur nächsten Iteration in der aktuellen For, While bzw. Repeat Schleife.

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;

Goto-Label-Anweisung

Die Goto Anweisung hat die Form Goto label , die die Skriptausführung zu der Anweisung weiterleitet, die mit dem angegebenen Label gekennzeichnet ist. Um eine Anweisung zu kennzeichnen, muss zunächst das Label deklariert werden; anschließend wird die Zielanweisung mit dem Label und einem Doppelpunkt eingeleitet: label: statement

Ein Label kann ein beliebiger gültiger Bezeichner sein. Die Label-Deklaration und Goto Anweisung müssen zum selben Codeblock innerhalb eines Skripts gehören. Daher ist es nicht möglich, in eine Prozedur oder Funktion hinein- oder aus dieser herauszuspringen.

Example:

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

Exit-Anweisung

Die Exit Anweisung kehrt sofort aus einer Funktion oder Prozedur zurück. Wenn Sie Exit innerhalb eines Try..Finally Block aufrufen, wird der Finally wird der Teil ausgeführt, bevor die Unterroutine zurückkehrt. Wird die Exit Prozedur aus dem Hauptteil des Skripts heraus aufgerufen wird, wird die Ausführung des Skripts beendet.

Example:

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

Break-Anweisung

Die Break Anweisung bewirkt, dass das ausführende Skript den aktuellen For, While oder Repeat Schleife. Die Skriptausführung wird ab der nächsten ausführbaren Zeile nach der aktuellen Schleife fortgesetzt.

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;

DelphiScript-Ausdrucksoperatoren

Im Allgemeinen ist ein Ausdruck eine gültige Kombination aus Konstanten, Variablen, Literalwerten, Operatoren und Funktionsergebnissen. Ausdrücke werden verwendet, um den Wert zu bestimmen, der einer Variablen zugewiesen werden soll, um den Parameter einer Funktion zu berechnen oder um eine Bedingung zu prüfen. Ausdrücke können Funktionsaufrufe enthalten.

DelphiScript verfügt über eine Reihe von logischen, arithmetischen, booleschen und relationalen Operatoren. Diese Operatoren sind nach ihrer Prioritätsreihenfolge gruppiert (siehe unten), die sich von den in Basic, C usw. verwendeten Prioritätsreihenfolgen unterscheidet. Beispielsweise gilt für den AND und OR im Vergleich zum relationalen Operator eine höhere Priorität.

Wenn Sie a, führt DelphiScript zuerst die AND Operation zuerst aus, was zu einem Fehler führt. Um dieses Problem zu vermeiden und die Priorität festzulegen, muss jeder Ausdruck in Klammern gesetzt werden: (a;

Die unten aufgeführten unterstützten DelphiScript-Operatoren sind nach ihrer Prioritätsreihenfolge sortiert.

Nach Priorität gruppierte Operatoren

Beachten Sie, dass unäre Operatoren die höchste Priorität haben.

Not

Boolesches oder bitweises NOT.

Multiplicative and Bitwise Operators

*

Arithmetische Multiplikation.

/

Gleitkommadivision.

div

Ganzzahlige Division.

mod

Modulo (Rest der ganzzahligen Division).

and

Boolesches oder bitweises UND.

shl

Bitweise Linksverschiebung.

shr

Bitweise Rechtsverschiebung.

Additive Operators

+

Arithmetische Addition, Zeichenfolgenverkettung.

-

Arithmetische Subtraktion.

or

Boolesches oder bitweises ODER

xor

Boolesches „oder“ bzw. bitweises EXKLUSIVES ODER.

Relational and Comparison Operators (lowest precedence)

=

Prüfen, ob gleich oder nicht.

>

Prüfen, ob nicht gleich ist oder nicht.

Prüfen, ob kleiner als oder nicht.

>

Prüfen, ob größer als ist oder nicht.

=

Prüfen, ob kleiner oder gleich ist oder nicht.

>=

Prüfen, ob größer als oder gleich ist oder nicht.

Beachten Sie außerdem, dass das ^ und @ nicht von DelphiScript unterstützt werden.

AI-LocalizedKI-lokalisiert
Wenn Sie ein Problem feststellen, wählen Sie den Text/das Bild aus und drücken SieCtrl + Enter, um uns Ihr Feedback zu senden.
Funktionsverfügbarkeit

Die Ihnen zur Verfügung stehenden Funktionen hängen davon ab, über welche Altium-Lösung Sie verfügen – Altium Develop, Altium Agile Teams, Altium Agile Enterprise oder Altium Designer (mit aktivem Laufzeitvertrag).

Wenn Sie eine dokumentierte Funktion in Ihrer tatsächlich verwendeten Software nicht sehen, wenden Sie sich an den Altium-Vertrieb, um mehr zu erfahren.

Legacy-Dokumentation

Die Dokumentation von Altium Designer wird nicht mehr versioniert. Wenn Sie auf Dokumentation für ältere Versionen von Altium Designer zugreifen müssen, besuchen Sie den Abschnitt Legacy-Dokumentation auf der Seite Andere Installer.

Inhalt