Die Klasse IconPanel (gb.form) ist ein Multi-Container, der große Symbole und Text auf seinen Registerkarten (Tab) anzeigen kann. Diese Klasse verhält sich wie ein Nur-Lesbar-Array. Ein IconPanel besteht aus einem linken und einem rechten Fensterbereich.
Die Container-Komponente IconPanel können Sie einsetzen, um mit minimalem Aufwand eine dekorative Navigation für mehrere Teil-Programme zu realisieren. Zu jedem Eintrag in der Navigationsleiste (left pane) mit großem Icon und Text steht Ihnen eine korrespondierende Fläche (right pane 1…k) für die Anordnung der Komponenten zur Verfügung:
Abbildung 18.15.1: Einsatz der Komponente IconPanel (Gambas-IDE)
Die Eigenschaften der Komponente IconPanel werden in der folgenden Tabelle beschrieben:
IconPanel | Datentyp | Default | Beschreibung |
---|---|---|---|
Border | Boolean | False | Legt fest, ob ein Rand angezeigt wird oder gibt diesen Wert zurück. |
Count | Integer | 1 | Gibt die Anzahl der Tabs zurück. |
Font | Font | System | Legt fest, welcher Font eingesetzt wird oder gibt den genutzten Font zurück. Der Font muss im System installiert sein. |
Index | Integer | 1 | Legt fest, welcher Tab aktiv ist oder gibt den Index des aktiven Tabs zurück. |
Picture | Picture | Null | Legt fest, welches Icon im aktuellen Tab angezeigt werden soll oder gibt den Bildnamen zurück. |
Text | String | - | Legt den Text fest, der im aktuellen Tab angezeigt werden soll oder gibt den Text zurück. |
TextFont | Font | System | Setzt den Font, der nur für den linken Fensterbereich verwendet werden soll oder gibt den Font zurück. Ist diese Eigenschaft nicht gesetzt (Null), wird der Wert der Font-Eigenschaft für beide Fensterbereiche gemeinsam benutzt. |
Tabelle 18.15.1.1: IconPanel-Eigenschaften
Die Container-Komponente besitzt nur ein spezielles Click-Ereignis. Es wird ausgelöst, wenn sich der aktuelle Tab (Registerkarte) ändert.
Das Projekt knüpft an das oben vorgestellte Beispiel zum Einsatz der Komponente IconPanel in der Gambas-IDE zur Festlegung globaler Einstellungen an und gibt Hinweise auf einige Aspekte im Umgang mit der Komponente, die Ihnen die Arbeit erleichtern sollen. Das gilt zur Entwicklungszeit besonders für
In der Planungspase sollten Sie die (Start-)Anzahl der einzelnen Tabs festlegen, deren Reihenfolge, Icon und Text für den linken Fensterbereich notieren sowie die Anordnung der Komponenten in den rechten Fensterbereichen – zumindest schematisch – aufzeichnen und kommentieren.
Hier sehen Sie die Anordnung der Komponenten für Tab2 mit passendem Icon und dem Beschriftungstext 'Einstellungen' in der IDE und darunter zur Laufzeit:
Abbildung 18.15.3.1: Projekt – Entwicklungszeit
Abbildung 18.15.3.2: Projekt – Laufzeit mit geändertem Text auf Tab2
Für alle Arbeiten in der IDE ist es wichtig, dass die Container-Komponente IconPanel markiert ist. Prüfen Sie das sorgfältig! Am sichersten gelingt Ihnen das mit einem Klick in den rechten Fensterbereich der Komponente IconPanel. Bevor der Quelltext in Auszügen angegeben wird, folgen einige Hinweise:
Der Quelltext ist überschaubar, weil nur wenige Eigenschaften zur Laufzeit gesetzt werden und die Funktionalität sich auf die Auswahl der Standard-Schriftart (→ Abbildung 18.15.3.2, roter Kreis) beschränkt.
' Gambas class file Public Sub Form_Open() FMain.Center FMain.Resizable = False FMain.Caption = "Projekt-Einstellungen für das aktuelle Projekt: " & Application.Name FMain.Arrangement = Arrange.Fill FMain.Margin = True FMain.Spacing = True FMain.Persistent = True FMain.Utility = True ipnOption.Arrangement = Arrange.Vertical ipnOption.Border = True ipnOption.Margin = True ipnOption.Spacing = True ' Zur Kontrolle und zum Experimentieren: ' Print ipnOption.Font.ToString() ' Auslesen des eingesetzten Fonts (Z.B. Ubuntu, 11) ' ipnOption.Font = Font["Arial,10,Italic"] ' Font für die Komponente IconPanel setzen ' ipnOption.TextFont = Font["Arial,11,Bold"] ' Font speziell für den linken Fensterbereich setzen ipnOption.Index = 1 ' Der 2. Eintrag ist aktiv ipnOption[1].Background = &HE1EAF6 ' Hintergrundfarbe Tab1 ipnOption[1].Text = "Allgemeine Einstellungen" ' Text für Tab1 ändern! btnClearGlobalFont.Tooltip = "Standard-Schriftart setzen" End ' Form_Open() Public Sub txtGlobalFont_Click() If Dialog.SelectFont() Then Return ' Aktion: Abbrechen txtGlobalFont.Text = Dialog.Font.Name & " " & Dialog.Font.Size End ' txtGlobalFont_Click() Public Sub btnClearGlobalFont_Click() txtGlobalFont.Text = "Ubuntu 11" End ' btnClearGlobalFont_Click() Public Sub Form_Close() FMain.Close End ' Form_Close()