Verwendung von VBScript-Formularkomponenten

Verwendung von Komponenten in VBScript-Formularen

Obwohl Formulare und Komponenten auf der Visual Component Library (VCL) von Embarcadero Delphi™ basieren, wird in Altium Designer bei der Verwendung von VBScript Tool Palette wird weiterhin verwendet, um Steuerelemente in ein Formular einzufügen, wenn VBScript verwendet wird. Außerdem werden Ereignisbehandler generiert und der Code wird in der Sprache VBScript geschrieben, unabhängig von den Delphi-Wurzeln der Formulare und Komponenten in Altium Designer.

Übersicht über Komponenten

Das Skriptsystem unterstützt zwei Arten von Komponenten: visuelle und nicht-visuelle Komponenten. Die visuellen Komponenten dienen zum Aufbau der Benutzeroberfläche, während die nicht-visuellen Komponenten für verschiedene Aufgaben verwendet werden, wie beispielsweise die Funktionen, die von der Timer, OpenDialog und MainMenu Komponenten bereitgestellten Funktionen. Beispielsweise dient die nicht-visuelle Timer Komponente wird verwendet, um bestimmten Code in festgelegten Intervallen auszuführen, und ist für den Benutzer nicht sichtbar. Die Button, Edit und Memo sind visuelle Komponenten – sie sind für den Benutzer sichtbar.

Beide Arten von Komponenten werden zur Entwurfszeit angezeigt, nicht-visuelle Komponenten sind jedoch zur Laufzeit nicht sichtbar. Komponenten aus dem Tool Palette Bedienfelds sind objektorientiert und verfügen über die folgenden drei Elemente:

  • Eigenschaften
  • Ereignisse
  • Methoden

Eine property ist ein Merkmal eines Objekts, das entweder das sichtbare Verhalten oder die Operationen dieses Objekts beeinflusst. Beispielsweise bestimmt die Visible Eigenschaft, ob dieses Objekt in einem Skriptformular sichtbar ist.

Ein event ist eine Aktion oder ein Vorgang, der vom Skript erkannt wird. In einem Skript schreibt der Programmierer für jeden Ereignis-Handler Code, der darauf ausgelegt ist, ein bestimmtes Ereignis – wie beispielsweise einen Mausklick – zu erfassen.

Ein method ist eine Prozedur, die immer mit einem Objekt verknüpft ist und das Verhalten dieses Objekts definiert.

Alle Skriptformulare verfügen über eine oder mehrere Komponenten. Komponenten zeigen in der Regel Informationen an oder ermöglichen es einem Benutzer, eine Aktion auszuführen. Beispielsweise dient ein Label zur Anzeige von statischem Text, ein Eingabefeld ermöglicht es einem Benutzer, Daten einzugeben, und eine Schaltfläche kann zum Auslösen von Aktionen verwendet werden.

Auf einem Formular kann eine beliebige Kombination von Komponenten platziert werden, sodass ein Benutzer während der Ausführung des Skripts (Laufzeit) mit ihnen interagieren kann. Es ist die Aufgabe des Skriptprogrammierers, zu entscheiden, was geschieht, wenn ein Benutzer auf eine Schaltfläche klickt oder einen Text in einem Eingabefeld ändert.

Das Skriptsystem stellt eine Reihe von Komponenten zur Verfügung, mit denen sich einfache oder komplexe Benutzeroberflächen für Skripte erstellen lassen. Alle Komponenten, die auf einem Formular platziert werden können, finden sich im Fenster „Werkzeugpalette“.

Um eine Komponente in ein Formular einzufügen, suchen Sie das entsprechende Symbol im Tool Palette und doppelklicken Sie darauf. Dadurch wird die Komponente an ihrer Standardposition mit Standardbreite und -höhe auf dem aktiven Formular platziert. Die visuelle Darstellung der meisten Komponenten wird durch die ihnen zugeordneten Eigenschaften bestimmt.

Eine platzierte Komponente kann an ihrer Standardposition und mit Standardbreite und -höhe mithilfe der Maus oder über das Object Inspector Bedienfelds. Wenn eine Komponente auf ein Formular gezogen wird, generiert das Skriptsystem automatisch den für die Verwendung der Komponente erforderlichen Grundcode und aktualisiert das Skriptformular. Damit die Komponente auf dem Formular funktioniert, müssen lediglich noch Eigenschaften festgelegt, Code in Ereignisbehandler eingefügt und Methoden nach Bedarf verwendet werden.

Entwerfen von Skriptformularen

Ein Skriptformular dient der Interaktion mit einem Benutzer innerhalb der Altium Designer-Umgebung. Das Entwerfen von Skriptformularen bildet den Kern der visuellen Entwicklung in Altium Designer.

Jede Komponente, die auf einem Skriptformular platziert wird, und jede festgelegte Eigenschaft wird in einer Datei gespeichert, die das Formular beschreibt (eine *.dfm Datei) und steht in Beziehung zum zugehörigen Skriptcode (der *.vbs Datei). Für jedes Skriptformular gibt es also die *.vbs Datei und die entsprechende *.dfm Datei.

Bei der Arbeit mit einem Skriptformular und seinen Komponenten können dessen Eigenschaften über das Object Inspector Bedienfeld aufgerufen und geändert werden. Mehrere Komponenten können durch Shift-Klick auf die Komponenten oder durch Ziehen eines Auswahlrechtecks um die Komponenten auf dem Skriptformular ausgewählt werden. Ein Skriptformular verfügt über einen Titel, der der Caption Eigenschaft im Object Inspector Bedienfeld zugeordnet ist.

Ein neues Skriptformular erstellen

Wenn ein Skriptprojekt geöffnet ist, klicken Sie mit der rechten Maustaste auf das Projekt im Projects Bedienfeld und wählen Sie die Add New to Project und anschließend die VB Script Form Elemente aus den Kontextmenüs. Es wird ein neues Skriptformular mit dem Standardnamen EditScript1.vbs Name erstellt. Alternativ können Sie in einem *.PrjPCB Projekt die Option File » New » Script Files » VB Script Form Befehl.

Anzeigen eines Skriptformulars

Ein Skript muss eine Routine enthalten, die das Formular anzeigt, wenn das Skriptformular in Altium Designer ausgeführt wird. Innerhalb dieser Routine wird die ShowModal Methode für das Formular aufgerufen. Die Visible Eigenschaft des Formulars muss auf „false“ (deaktiviert) gesetzt werden, damit die ShowModal korrekt zu funktionieren.

Beispiel für „ShowModal“

Sub RunDialog
  DialogForm.ShowModal
End Sub

Das obige ShowModal Beispiel zeigt eine einfache Möglichkeit, das Skriptformular anzuzeigen, wenn der RunDialog Dialogfeld aus dem Skript aufgerufen wird. Beachten Sie, dass den Komponenten des DialogForm Objekts zugewiesen werden können, bevor die DialogForm.ShowModal Methode aufgerufen wird.

Das ModalResult unten gezeigte Beispiel ist komplexer. Seine letzten Methoden werden für Schaltflächen im Skriptformular verwendet. Die Skriptmethoden bewirken, dass der Dialog beendet wird, wenn ein Benutzer entweder auf die OK oder Cancel Schaltfläche klickt, was mrOk bzw. mrCancel der ShowModal .

ModalResult Example

sub bOKButtonClick(Sender)
  ModalResult := mrOK
end sub
 
sub bCancelButtonClick(Sender)
  ModalResult := mrCancel
end sub
 
sub RunShowModalExample
  'Form Visible property must be false for ShowModal to work properly.
  If Form.ShowModal = mrOk     Then ShowMessage("mrOk")
  If Form.ShowModal = mrCancel Then ShowMessage("mrCancel")
end sub

Das Gleiche wie oben könnte durch Setzen des ModalResult Wert auf mrOk für die OK Schaltfläche und auf mrCancel für die Cancel Schaltfläche in deren Ereignisbehandlungsroutinen. Wenn ein Benutzer auf eine der beiden Schaltflächen klickt, wird das Dialogfeld geschlossen. Es ist nicht erforderlich, die Close Methode aufrufen, da die Skript-Engine das Skriptformular automatisch schließt, sobald die ModalResult Methode festgelegt wurde, schließt die Skript-Engine das Skriptformular automatisch.

Beachten Sie, dass zum Festlegen der ModalResult so festzulegen, dass es abgebrochen wird, wenn ein Benutzer die Esc Taste, die Cancel Eigenschaft „Abbrechen“ der Schaltfläche im Object Inspector oder fügen Sie Sender.Cancel := True in den Ereignisbehandler der Schaltfläche CancelButtonClick Ereignisbehandler des Formulars ein.

Benutzereingaben akzeptieren

Eine der gängigen Komponenten, die Benutzereingaben entgegennehmen können, ist die EditBox Komponente. Diese EditBox Komponente verfügt über ein Textfeld, in das ein Benutzer eine Zeichenfolge eingeben kann. Es gibt auch andere Komponenten, die Text akzeptieren können, wie beispielsweise die „Masked Edit“-Komponente, bei der es sich um eine Edit-Komponente mit einer Eingabemaske für das Textfeld handelt. Die Maske steuert bzw. filtert die Eingabe und wird in einer Parameterzeichenfolge gespeichert.

Das folgende Beispiel veranschaulicht, was geschieht, wenn ein Benutzer auf die Schaltfläche klickt, nachdem er Text in das Eingabefeld eingegeben hat. Beachten Sie, dass der Ereignisbehandler eine Warnmeldung ausgibt, wenn der Benutzer keinen Text in die Eingabekomponente eingegeben hat

sub TScriptForm.ButtonClick(Sender)
  If Edit1.Text = "" Then
  ShowMessage("Warning - empty input!")
  Exit
  End
  ' do something else for the input
End sub

Beachten Sie, dass ein Benutzer den Eingabefokus im Formular mithilfe der Tab Taste oder durch Klicken auf ein anderes Formularsteuerelement verschieben kann.

Reagieren auf Ereignisse

Wenn ein Formular oder eine Komponente von einem Benutzer ausgewählt wird, sendet Altium Designer eine Nachricht an das Skriptsystem, das auf die Ereignisbenachrichtigung reagiert, indem es die entsprechende Ereignisbehandlungsmethode aufruft.

Erstellen von Ereignisbehandlungsroutinen

Ein Skript muss möglicherweise auf Ereignisse reagieren, die bei einer Komponente zur Laufzeit auftreten können. Ein Ereignis ist eine Verknüpfung zwischen einem Vorgang in Altium Designer – beispielsweise dem Klicken auf eine Schaltfläche – und einem Codeabschnitt, der auf diesen Vorgang reagiert. Der reagierende Code ist ein Ereignisbehandler, der Eigenschaftswerte ändert und Methoden aufruft.

Neben den Eigenschaften einer Komponente verfügt jede über eine Reihe von Ereignisnamen. Ein Skriptprogrammierer entscheidet, wie das Skript auf die Aktionen eines Benutzers in Altium Designer reagiert. Wenn ein Benutzer beispielsweise auf eine Schaltfläche in einem Formular klickt, sendet Altium Designer eine Nachricht an das Skript, und das Skript reagiert auf dieses neue Ereignis – sofern das OnClick Ereignis für eine Schaltfläche festgelegt ist, wird dieses ausgeführt.

Alle derartigen Komponenten verfügen zudem über ein Ereignis für das Erlangen und Verlieren des Fokus. Wenn jedoch der Code für „OnEnter“ und „OnExit“ nicht festgelegt ist (OnEnter - das Steuerelement den Fokus hat; OnExit – das Steuerelement verliert den Fokus), wird das Ereignis vom Skript ignoriert.

Komponenteneigenschaften

Um eine Liste der Eigenschaften einer Komponente anzuzeigen, wählen Sie eine Komponente aus und aktivieren Sie die Properties Registerkarte im Object Inspector Bedienfeld.

Komponentenereignisse

Um eine Liste der Ereignisse anzuzeigen, auf die eine Komponente reagieren kann, wählen Sie eine Komponente aus und aktivieren Sie die Events Registerkarte im Object Inspector Bedienfeld. Um eine Ereignisbehandlungsroutine für ein Ereignis zu erstellen, auf das eine Komponente reagieren soll, wählen Sie ein geeignetes Ereignis aus und doppelklicken Sie auf dessen Namen.

Wählen Sie beispielsweise die Button1 Komponente aus dem Tool Palette Bedienfeld aus, ziehen Sie sie auf das Skriptformular und doppelklicken Sie neben dem OnClick Ereignisnamens. Das Skriptsystem wechselt zurück zum Code-Editor, wo der Skelettcode für das OnClick Ereignis erstellt wurde. Wenn eine Schaltfläche über eine Close Methode in ihrem CloseClick Ereignisbehandler enthält, erfasst dessen Ereignisbehandler beim Klicken auf die Schaltfläche das „On-Click“-Ereignis, und der Code innerhalb des Ereignisbehandlers wird ausgeführt. Das heißt, die Close Methode schließt das Skriptformular.

Zusammenfassend lässt sich sagen, dass ein Ereignis-Handler in einem Skript erstellt wird, indem eine Komponente auf dem Formular ausgewählt wird oder über das Object Inspector Bedienfelds und anschließendem Doppelklick rechts neben dem gewünschten Ereignis (z. B. „OnClick“) im Events Registerkarte des Inspectors – das entsprechende Code-Gerüst erscheint dann im Skript.

Alternativ fügt das Skriptsystem durch einen Doppelklick auf eine Schaltfläche einen Handler für ein OnClick Ereignis hinzu. Andere Komponententypen weisen völlig andere Standardaktionen auf.

Komponentenmethoden

Eine Liste der Methoden einer Komponente finden Sie in der Komponentenreferenz; ausführlichere Informationen entnehmen Sie bitte der Embarcadero Delphi-Dokumentation.

Erstellen von Komponenten zur Laufzeit

Komponenten können direkt in einem Skript erstellt und gelöscht werden. Normalerweise muss das Handle des Formulars nicht übergeben werden, da das Skriptformular dies automatisch übernimmt – übergeben Sie stattdessen einen Nil Parameter an den Konstruktor der Komponente.

Beispielsweise der Open und Save Dialogfelder können erstellt und gelöscht werden (die TOpenDialog und TSaveDialog Klassen als Teil der Delphi-RTL).

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