Freigeben über


Koordinieren von Symbolleisten und Formularen mit Code

Symbolleisten können nicht nur mit dem Formular-Designer, sondern auch mittels Code zu einem Formularsatz hinzugefügt werden.

So fügen Sie mit Code eine Symbolleiste zu einem Formularsatz hinzu

  • Verwenden Sie im Init-Ereignis des Formularsatzes den Befehl SET CLASSLIB, um die Bibliothek mit der Symbolleistenklasse anzugeben, und erstellen Sie danach ausgehend von dieser Klasse eine Symbolleiste im Formularsatz.

Um z. B. die Symbolleiste tbrPrint, die auf der printing-Klasse in der Klassenbibliothek inventory basiert, hinzuzufügen und anzuzeigen, geben Sie im Init-Ereignis des Formularsatzes den folgenden Code ein:

SET CLASSLIB TO inventory
THIS.AddObject("tbrPrint","printing")
THIS.tbrPrint.Show

Anmerkung   Wenn die Aktionen der Symbolleiste und ihrer Schaltflächen nicht in der Symbolleistenklasse definiert sind, müssen Sie die Aktionen in den entsprechenden Ereignisprozeduren der Symbolleiste und ihrer Schaltflächen definieren.

Beispiel:

Alle Aspekte einer Symbolleiste lassen sich auch mit Code festlegen. Mit den folgenden Codezeilen im Init-Ereignis des Formularsatzes können Sie beispielsweise die im Code angegebene Symbolleiste beim Laden des Formularsatzes erstellen und anzeigen. Diese Symbolleiste enthält zwei Schaltflächen:

Diese Schaltflächen ändern nach dem Anklicken die Schriftart-Attribute des im Formularsatz enthaltenen Formulars frmForm1.

Init-Ereigniscode des Formularsatzes

Code Kommentar
THIS.AddObject("tbrTool1","mytoolbar")
THIS.tbrTool1.Show
Fügt zum aktuellen Formularsatz eine Symbolleiste der Klasse mytoolbar hinzu und macht die Symbolleiste sichtbar. Dieser Code befindet sich im Init-Ereignis des Formularsatzes.

Klassendefinitionscode

Code Kommentar
DEFINE CLASS myToolBar AS TOOLBAR
ADD OBJECT cmdBold AS COMMANDBUTTON
ADD OBJECT sep1    AS SEPARATOR
ADD OBJECT cmdItalic AS COMMANDBUTTON
Beginn der Klassendefinition: Eine Symbolleiste mit einer Befehlsschaltfläche, einem Zwischenraum und einer weiteren Befehlsschaltfläche.
Left = 1
Top  = 1
Width = 25
Caption = "Form Attributes"
Legt die Eigenschaften des Symbolleisten-Objekts fest.
cmdBold.Caption = "B"
cmdBold.Height = 1.7
cmdBold.Width = 10
cmdItalic.Caption = "I"
cmdItalic.Height = 1.7
cmdItalic.Width = 10
cmdItalic.FontBold = .F.
Legt die Eigenschaften der Steuerelemente fest. Bei Schaltflächen in einer Symbolleiste können die Eigenschaften Top und Left nicht eingestellt werden. Die Steuerelemente in einer Symbolleiste werden automatisch in der Reihenfolge, in der sie hinzugefügt werden, angeordnet.

Die FontBold-Eigenschaft von cmdItalic wird auf Falsch (.F.) eingestellt, weil FontBold standardmäßig auf Wahr (.T.) eingestellt ist.
PROCEDURE Activate
   THIS.cmdBold.FontBold = ;
    THISFORMSET.frmForm1.FontBold
   THIS.cmdItalic.FontItalic = ;
    THISFORMSET.frmForm1.FontItalic
ENDPROC
Wenn die Symbolleiste aktiviert wird, werden die Schriftart-Attribute der beiden Befehlsschaltflächen so eingestellt, dass sie den Schriftarteinstellungen für Fett und Kursiv des Formulars frmForm1 entsprechen.
PROCEDURE cmdBold.CLICK
   THISFORMSET.frmForm1.FontBold = ;
    !THISFORMSET.frmForm1.FontBold
   THIS.FontBold = ;
    THISFORMSET.frmForm1.FontBold
ENDPROC
Wenn der Benutzer auf cmdBold klickt, wird die FontBold-Einstellung des Formulars frmForm1 umgeschaltet und die FontBold-Einstellung von cmdBold entsprechend angeglichen.
PROCEDURE cmdItalic.CLICK
   THISFORMSET.frmForm1.FontItalic = ;
    !THISFORMSET.frmForm1.FontItalic
   THIS.FontItalic = ;
    THISFORMSET.frmForm1.FontItalic
ENDPROC
Wenn der Benutzer auf cmdItalic klickt, wird die FontItalic-Einstellung des Formulars frmForm1 umgeschaltet und die FontItalic-Einstellung von cmdItalic entsprechend angeglichen.
ENDDEFINE
Ende der Klassendefinition.

Einstellen der Eigenschaften von benutzerdefinierten Symbolleisten

Eigenschaften einer benutzerdefinierten Symbolleiste können zur Entwurfszeit festgelegt werden. So können Sie z. B. die Movable-Eigenschaft einstellen, wenn die Benutzer die Möglichkeit haben sollen, die Symbolleiste zu verschieben.

Darüber hinaus können Sie Methoden und Ereignisse zur Steuerung von Symbolleisten verwenden. Sie können die Symbolleiste z. B. mit der Dock-Methode andocken oder verschieben. Mit den Ereignissen BeforeDock und AfterDock bestimmen Sie, was vor und nach dem Andocken einer Symbolleiste geschehen soll.

Siehe auch

Hinzufügen von benutzerdefinierten Symbolleisten zu Formularsätzen | Definieren von Symbolleisten-Aktionen | Erstellen von benutzerdefinierten Symbolleisten | Dialogfeld "Symbolleiste anpassen" | Entwerfen von Menüs und Symbolleisten | Konfigurieren von Visual FoxPro | Definieren von Symbolleisten-Aktionen