Die Klasse ToolBar (gb.form.mdi) implementiert eine Symbolleiste zur Aufnahme von ToolButton und MenuButton. Sie besitzt einige spezielle Eigenschaften, aber nur eine Methode und genau ein Ereignis sowie 2 Konstanten für die Festlegung der Ausrichtung einer ToolBar.
Abbildung 12.3.2.1: Toolbar mit ToolButton in der Gambas-IDE
Die beiden Eigenschaften ToolBar.Key und ToolBar.Text sind nur dann festzulegen, wenn Sie die Methode ToolBar.Configure einsetzen wollen. Die Methode gestattet Ihnen zur Laufzeit eines Programms das Design einer ToolBar in engen Grenzen zu ändern. Die Änderungen betreffen die Höhe der Icon auf den Tool- oder MenuButton (klein, mittel oder groß), das Hinzufügen oder Entfernen von Tool- oder MenuButton, das Hinzufügen oder Entfernen von Separatoren und Zwischenräumen sowie das Umgruppieren von Elementen in der ToolBar. Hinzufügen können Sie nur Tool- oder MenuButton, die in einem Konfigurationsdialog vorher entfernt und 'geparkt' wurden. Ob dieses Feature eine gelungene Spielerei oder eine sinnvolle Ergänzung ist müssen Sie entscheiden.
ToolBar | Datentyp | Default | Beschreibung |
---|---|---|---|
AutoResize | Boolean | False | Gibt an, ob sich die Größe der ToolBar automatisch an den Inhalt anpasst |
Orientation | Integer | 0 | Setzt die Ausrichtung der ToolBar oder gibt diesen Integer-Wert zurück. Entweder benutzen Sie die Zahl 0 für die horizontale Ausrichtung oder 1 für die vertikale Ausrichtung oder Sie verwenden die Konstanten ToolBar.Horizontal oder ToolBar.Vertical. |
Separator | Boolean | False | Wird der Wert auf True gesetzt, erscheint unter der Toolbar eine dünne Linie in der Länge der ToolBar. Der Eigenschaftswert kann auch ausgelesen werden. |
ToolTip | String | Null | Setzt den anzuzeigenden ToolTipp-Text der ToolBar oder gibt diesen zurück |
Text | String | Null | Setzt den Namen der ToolBar oder gibt diesen zurück. Der Name wird intern bei der ToolBar-Konfiguration verwendet. |
Key | String | Null | Setzt einen String zur eindeutigen Identifizierung der Symbolleiste oder gibt ihn zurück. Dieser Schlüssel wird bei der automatischen Sicherung oder Wiederherstellung der Konfiguration der Symbolleiste verwendet. Nur wenn die Eigenschaft gesetzt ist, dann wird die ToolBar konfigurierbar sein! |
Tabelle 12.3.2.2.1: Ausgewählte ToolBar-Eigenschaften
Die Methode ToolBar.Configure greift nur dann, wenn
Hinweise:
Die Methode ToolBar.Configure rufen Sie in einer Ereignisbehandlungsroutine auf oder Sie nutzen komfortabel das Kontext-Menü der Komponente ToolBar.
Das Ereignis ToolBar_Configure() wird ausgelöst, wenn die ToolBar konfiguriert wurde.
Das Beispiel demonstriert den Einsatz einer zur Programm-Laufzeit konfigurierbaren ToolBar (Symbolleiste). Die Toolbar enthält mehrere ToolButton und einen MenuButton, der jedoch nicht konfigurierbar ist, weil dessen .Action-Eigenschaft nicht gesetzt worden ist.
Abbildung 12.3.2.5.1: ToolBar mit ToolButton und MenuButton
Nach dem Sie in der Entwicklungsumgebung (IDE) alle Komponenten auf der Form platziert haben, müssen Sie dort im Reiter Eigenschaften die Eigenschaft ToolButton.Key und die .Action-Eigenschaft für die ToolButton und den MenuButton festlegen, die konfigurierbar sein sollen, weil der folgende Quelltext zwar keinen Fehler produziert, aber wirkungslos bleibt:
ToolBar1.Key = "Emma" toolbtnOpen.Action = "A1" toolbtnPlay.Action = "A2" toolbtnFTP.Action = "A3" toolbtnConfiguration.Action = "A4" toolbtnClose.Action = "A5"
12.3.2.6 Projekt-Quelltext
Der Quelltext wird vollständig angegeben und anschließend kommentiert:
[1] ' Gambas class file [2] [3] Public Sub Form_Open() [4] FMain.Center [5] FMain.Resizable = False [6] PictureBox1.Picture = Picture["fractal.jpg"] [7] [8] ToolBar1.Height = 32 [9] ToolBar1.Orientation = ToolBar1.Horizontal ' Alternative: ToolBar1.Orientation = 0 [10] ToolBar1.Separator = False [11] toolbtnFTP.Toggle = True [12] toolbtnFTP.Value = False [13] [14] mnubtnHelp.Width = 72 [15] mnubtnHelp.Text = "Hilfen" [16] mnubtnHelp.Menu = "mnuHelp" [17] mnubtnHelp.MenuOnly = True [18] [19] End ' Form_Open() [20] [21] Public Sub mnu21Help_Click() [22] FHelp.Show ' → F1 [23] End ' mnuHelp_Click() [24] [25] Public Sub mnu22Information_Click() [26] Desktop.Open("http://www.gambas-buch.de/dw/doku.php?id=k18:k18.6:start") ' → F12 [27] End ' mnu22Information_Click() [28] [29] Public Sub toolbtnOpen_Click() [30] OpenImage() [31] End ' toolbtnOpen_Click() [32] [33] Public Sub toolbtnFTP_Click() [34] FTPStartStop() [35] End ' toolbtnFTP_Click() [36] [37] Public Sub toolbtnConfiguration_Click() [38] ToolBar1.Configure() [39] End ' toolbtnConfiguration_Click() [40] [41] Public Sub toolbtnClose_Click() [42] FMain.Close [43] End ' toolbtnClose_Click() [44] [45] Public Sub Form_Close() [46] FHelp.Close [47] FMain.Close [48] End ' Form_Close() [49] [50] '************************************************************************** [51] [52] Private Sub OpenImage() [53] Dialog.Title = "Importieren Sie eine Bild-Datei!" [54] Dialog.Filter = ["*.png", "Bild-Dateien"] [55] [56] If Dialog.OpenFile(False) = True Then ' Multiselect=False (Standard) [57] Message.Info("Das Öffnen der Bild-Datei wurde abgebrochen!") [58] Return ' Cancel-Button gedrückt [59] Else [60] Try PictureBox1.Picture = Picture.Load(Dialog.Path) [61] If Error Then [62] Message.Error("Fehler beim Öffnen der Bilddatei") [63] Else [64] Label1.Alignment = Align.Left [65] Label1.Text = " Datei: " & File.Name(Dialog.Path) [66] Endif ' ERROR ? [67] Endif ' Dialog.OpenFile(...) = TRUE ? [68] End ' OpenImage() [69] [70] Private Sub FTPStartStop() [71] If toolbtnFTP.Value = True Then [72] toolbtnFTP.Picture = Picture["icon:/16/disconnect"] [73] toolbtnFTP.Tooltip = "FTP-Server starten" [74] ' FTP-Server ---> Start-Befehl ausführen [75] Else [76] toolbtnFTP.Picture = Picture["icon:/16/connect"] [77] toolbtnFTP.Tooltip = "FTP-Server stoppen" [78] ' FTP-Server ---> Stopp-Befehl ausführen [79] Endif ' toolbtnFTP.Value = True ? [80] End ' FTPStartStop() [81] [82] Public Sub ToolBar1_Configure() [83] FMain.Background = Color.Red [84] Wait 0.05 [85] FMain.Background = Color.ButtonBackground [86] End ' ToolBar1_Configure()
Kommentare:
Den Konfigurationsdialog zur Konfiguration der ToolBar starten Sie entweder über den 4. ToolButton (Aufruf der Prozedur ToolButton.Configure() ) oder über das Kontext-Menü der ToolBar:
Public Sub toolbtnConfiguration_Click() ToolBar1.Configure() End ' toolbtnConfiguration_Click()
Im Kontextmenü existieren 3 Einträge – Einrichten, Icon-Größe (3 Möglichkeiten: klein, mittel, groß) und Abbrechen. Das Ereignis ToolBar1_Configure() wird über das KontextMenü ausgelöst!
Abbildung 12.3.2.7.1: Kontext-Menü der ToolBar
Beide Varianten öffnen einen Dialog zur Konfiguration einer ToolBar. Wenn der Konfigurations-Dialog geöffnet wurde, befindet sich die ToolBar im Konfigurationsmodus. In diesem Modus wird die ToolBar deaktiviert. Sie können
Abbildung 12.3.2.7.2: Deaktivierte ToolBar und Konfigurationsdialog
Nach den Änderungen verlassen Sie den Konfigurations-Dialog über den 'Schließen'-Button. Die Symbolleiste ändert den Konfigurations-Modus und ist wieder nutzbar. Nach einer Änderung der Geometrie des ToolBar-Konfigurationsdialog-Fensters finden Sie in der Konfigurationsdatei ~/.config/gambas3/ToolBar.conf den folgenden Eintrag:
[gb.form.mdi/FToolbarConfig] Geometry=[1042,337,592,329,0]
oder nach einer Konfiguration der ToolBar mit diesen Einstellungen einen erweiterten Eintrag:
[gb.form.mdi/FToolbarConfig] Geometry=[1042,337,592,329,0] [gb.form.mdi/Toolbars/Emma] Layout=["A1","|","A2","|","A3","|","A4","-","$mnubtnHelp","-","A5"]
Abbildung 12.3.2.7.3: Konfgurierte ToolBar
Ein „Zurücksetzen“ im Dialog bedeutet, dass die ToolBar-Eigenschaften, bis auf die Icon-Größe, nach einer Sicherheitsabfrage auf die Starteinstellungen zurückgesetzt werden → Abbildung 12.3.2.5.1.