Die Klasse Stock ermöglicht Ihnen den Zugriff auf Icons aus dem Bestand von Gambas in vordefinierten Bildgrößen in der Einheit Pixel. Die Größen der quadratischen Icon sind 16 (small), 22 (medium), 32 (large), 48 (huge), 64, 96 und 128. Sie können folgenden Komponenten ein Icon – als kleine Bilder mit einem Symbol – zuweisen:
Button, ButtonBox, CheckBox, ColorButton, ColorChooser, ColumnView, ComboBox, Container, Control, DateBox, DateChooser, Dial, DirChooser, DirView, DrawingArea, Editor, Embedder, Expander, FileChooser, FileView, FontChooser, Form, Frame, GridView, HBox, HPanel, HSplit, IconPanel, IconView, LCDNumber, Label, ListBox, ListContainer, ListView, MaskBox, MenuButton, MovieBox, Panel, PictureBox, ProgressBar, RadioButton, ScrollArea, ScrollBar, ScrollView, Separator, SidePanel, Slider, SpinBox, TabPanel, TabStrip, TableView, TextArea, TextBox, TextEdit, TextLabel, ToggleButton, ToolButton, ToolPanel, TrayIcon, TreeView, UserContainer, UserControl, VBox, VPanel, VSplit, ValueBox, Window, Wizard, _IconPanelContainer, _TabPanelContainer, _WizardContainer
Die Zuweisung erfolgt entweder zur Entwicklungszeit in der IDE im Eigenschaften-Fenster oder zur Laufzeit der Programms. Dann müssen Sie die entsprechenden Anweisungen kodieren.
Nachdem Sie eine Komponente auf dem Formular platziert haben, können Sie dieser Komponente ein Icon zuweisen. Wenn eine Komponente markiert ist, dann sehen Sie im Eigenschaften-Fenster wesentliche Eigenschaften der Komponente. Suchen Sie die Eigenschaft Picture und nicht – wie man vermuten würde – nach Icon. Klicken Sie zuerst in die leere Eingabebox und dann auf die sich zeigenden kleinen drei Punkte. Es öffnet sich ein Bild-Auswahldialog. Wählen Sie zuerst den Reiter Bestand, danach die entsprechende Größe für das Icon und abschließend das Icon aus. Beenden Sie den Dialog mit 'OK'.
Abbildung 20.8.1.1: Icon-Auswahl-Dialog
Im Eigenschaften-Fenster sehen Sie den folgenden Eintrag:
Abbildung 20.8.1.2: Icon-Auswahl-Dialog
Wenn Sie die Anweisungen zur Zuweisung von einem Icon an eine Komponente kodieren wollen, dann benötigen Sie den Namen des kleinen Bildes mit einem Symbol. Diese Namen der einzelnen Icon aus dem Bestand von Gambas ermitteln Sie in einem kleinen Projekt – einschließlich der Anzeige der Icon – mit wenigen Code-Zeilen, nachdem Sie auf dem Formular die Komponente IconView positioniert haben:
' Gambas class file Public Sub Form_Open() FMain.Height = 272 FMain.Width = 664 FMain.Center FMain.Resizable = True FMain.Arrangement = Arrange.Fill DisplayIcons() End ' Form_Open Private Sub DisplayIcons() Dim sIconKey, sIconName As String IconView.Clear() For Each sIconKey In Stock.Icons ' Bis Version GB 3.2 für Stock.Icons → Stock.List setzen sIconName = "icon:/32/" & sIconKey IconView.Add(sIconKey, sIconKey, Picture[sIconName]) Next ' sIconKey End ' DisplayIcons()
Nach dem Start des Programms sehen Sie die Icon und erfahren den dazu gehörenden Namen, der sich nicht immer aus dem Symbol erschließt, wie das Bild mit dem Ausrufezeichen zeigt:
Abbildung 20.8.2.1: IconView mit Icon aus dem Bestand von Gambas
Beachten Sie: Unter Ubuntu ist die Anzeige von Icon in Komponenten abgeschaltet (Standard) mit der Begründung, diese würden den Nutzer nur stören. Um die Icon zu sehen, müssen Sie in einem Terminal den folgenden Befehle ausführen, dann ist die bunte Welt der Icons – nicht nur in Menüs – wieder in Ordnung:
ALT+F2 —> Terminalfenster:
gconftool --type=bool --set /desktop/gnome/interface/menus_have_icons 1 gconftool --type=bool --set /desktop/gnome/interface/buttons_have_icons 1
Nachdem Sie die Namen der Icon kennen, können Sie die Zuordnung der kleinen Bilder mit einem Symbol auch im Quelltext eines Projektes kodieren. Das wird notwendig, wenn Sie zum Beispiel die Icon in Abhängigkeit von bestimmten Programmzuständen verändern wollen. Die zwei Beispiele in der Hilfe von Gambas unter http://gambasdoc.org/help/comp/gb.form/stock?v3 sollten Sie sich unter diesem Aspekt ansehen!
Im vorgestellten Projekt SVN werden viele Bilder eingesetzt. Einerseits sind es Icon aus dem Bestand von Gambas und andererseits ein größeres Bild, das in einem speziellen Projekt-Ordner gespeichert wurde. Zwei Komponenten werden bereits zur Entwicklungszeit – hier sind es Button – Icon zugewiesen. Eine Beschreibung hierfür finden Sie im Kapitel 20.8.2. Die Zuweisungen der anderen Bilder werden kodiert. Wenn eine Komponente deaktiviert wurde, dann sehen Sie das Icon nur in der Einheitsfarbe grau. Die Icon haben alle die gleiche Größe 16px. Sie können aber statt des numerischen Wertes 16 auch die Konstante small im Quelltext benutzen. Die Einheit px wird nicht verwendet.
Abbildung 20.8.3.1: Formular zur Entwicklungszeit
Im folgenden Ausschnitt wird nur der Quelltext der Ereignisbehandlungsroutine Form_Open() gezeigt, weil in ihr alle relevanten Anweisungen – gelb unterlegt – stehen:
Public Sub Form_Open() FMain.Center FMain.Resizable = False PictureBox1.Picture = Picture["IconLast/new-logo.png"] ' Logo GB2 btnUpdateStart.Picture = Picture["icon:/16/play"] btnReconfUpdate.Picture = Picture["icon:/16/revert"] btnConfigureUpdate.Picture = Picture["icon:/16/tools"] btnClose.Picture = Picture["icon:/small/quit"] ' small = 16px SVNSettings = New Settings iSVNLastRevision = SVNSettings["Revision/LastRevision", 0] InstallSubversion() sSVNPfad = User.Home &/ "gb3_trunk" If Not Exist(sSVNPfad) Then Try Mkdir sSVNPfad If Error = True Then Message.Error("Fehler beim Anlegen des Ordners" & sSVNPfad) Return Endif ' Error = True? Endif ' Not Exist(SVNPfad? btnReconfUpdate.Enabled = False btnConfigureUpdate.Enabled = False btnMakeUpdate.Enabled = False btnMakeInstallUpdate.Enabled = False End ' Form_Open
Nach der Installation der neuesten Revision von Gambas über SVN sind alle Button aktiviert worden und alle Icon zeigen sich von ihrer farbigen Seite:
Abbildung 20.8.3.2: Formular zur Laufzeit
Finden Sie im Bestand von Gambas keine Icon mit geeigneten Symbolen, dann können Sie