Inhaltsverzeichnis
19.2 TrayIcon - TrayIcons
Die Komponente gb.gui.trayicon ermöglicht es, ein Tray-Icon in der Taskleiste anzuzeigen. Es werden die folgenden System-Tray-Protokolle unterstützt:
- Die alte X11-Freedesktop-System-Tray-Spezifikation,
- das KDE DBus-System-Tray-Protokoll und
- das Unity DBus-System-Tray-Protokoll.
Das DBus-Systemprotokoll sollte Standard sein, aber leider sind KDE- und Ubuntu-Implementierungen nicht miteinander kompatibel! Die Komponente untersucht daher zur Laufzeit, welche Art von System-Tray auf dem System verfügbar ist. Danach wird automatisch das passende Protokoll gewählt. Die Komponente gb.dbus wird nur dann geladen, wenn auch das DBus-Protokoll verwendet wird.
Während die Klasse TrayIcon ein Tray-Icon implementiert, stellt die Klasse TrayIcons eine virtuelle Sammlung aller TrayIcon-Objekte zu Verfügung, die von einer Anwendung verwaltet werden.
19.2.1 Klasse TrayIcon
Die Klasse TrayIcon verfügt über diese Eigenschaften:
19.2.1.1 Eigenschaften
| Eigenschaft | Datentyp | Beschreibung |
|---|---|---|
| Icon | Picture | Gibt das Symbol zurück oder setzt das Symbol für das Tray-Icon. |
| Picture | Picture | Ein Synonym für die Icon-Eigenschaft. |
| PopupMenu | String | Der Name des Menüs wird gesetzt oder zurück gegeben, wenn ein Nutzer auf das Tray-Icon klickt. |
| Tag | Variant | Gibt den Wert der Tag-Eigenschaft zurück oder setzt den Wert dieser Eigenschaft. Diese Eigenschaft ist für den Programmierer bestimmt und wird von der Komponente nie verwendet. Tag kann einen beliebigen Wert vom Typ Variant annehmen. |
| ToolTip | String | Gibt den Text des Tool-Tipps zurück oder setzt den Text des Tool-Tipps, der für das Tray-Icon angezeigt wird. |
| Text | String | Ein Synonym für die Tooltip-Eigenschaft. |
| Visible | Boolean | Gibt an, ob das Tray-Icon sichtbar ist oder legt mit True fest, dass das Tray-Icon sichtbar ist. |
Tabelle 19.2.1.1.1: Eigenschaften der Klasse TrayIcon
19.2.1.2 Eigenschaften
Die Klasse TrayIcon besitzt nur drei Methoden:
| Methode | Beschreibung |
|---|---|
| Delete( ) | Löscht ein TrayIcon-Objekt. |
| Hide() | Blendet das Tray-Icon aus dem System-Tray aus. |
| Show() | Zeigt das Tray-Icon im System-Tray an. |
Tabelle 19.2.1.2.1: Methoden der Klasse TrayIcon
Hinweis:
Wenn Sie das Fenster einer Anwendung schließen wollen, die ein TrayIcon-Objekt verwendet, dann müssen Sie vorher die Methode TrayIcon.Hide() verwenden!
19.2.1.3 Ereignisse
Nur drei Ereignisse werden durch die Klasse TrayIcon ausgelöst:
- _Click,
- _MiddleClick und
- _Scroll(Delta As Float, Orientation As Integer)
| Ereignis | Beschreibung |
|---|---|
| Click | Dieses Ereignis wird ausgelöst, wenn der Benutzer mit der linken Maustaste auf das Tray-Icon klickt. |
| MiddleClick | Dieses Ereignis wird ausgelöst, wenn der Benutzer mit der mittleren Maustaste auf das Tray-Icon klickt. |
| Scroll ( Delta As Float, Orientation As Integer ) | Dieses Ereignis wird ausgelöst, wenn der Benutzer mit der Maus auf dem Tray-Icon scrollt. |
Tabelle 19.2.1.3.1: Ereignisse der Klasse TrayIcon
Hinweise zum Scroll(…)-Ereignis
- Delta ist der Delta-Wert des Scroll-Ereignisses. Ein positiver Wert für Delta zeigt an, dass das Rad vom Benutzer weg nach vorne gedreht wurde. Ein negativer Wert zeigt an, dass das Rad rückwärts zum Benutzer gedreht wurde.
- Orientation ist die Orientierung des Scroll-Ereignisses. Die Orientierung kann eine der folgenden Konstanten sein: TrayIcon.Horizontal (0) und TrayIcon.Vertical (1).
- Beispiel für den Einsatz: Wenn Sie das Mausrad benutzen, so können Sie über das Scroll(…)-Ereignis die Lautstärke eines im Hauptprogramm verwendeten Players erhöhen oder vermindern.
- Im Download-Bereich finden Sie ein interessantes Projekt von Gianluigi (bagonergi@gmail.com), bei dem über das Scroll(…)-Ereignis das Icon alternativ geändert wird. Damit wird zu unterschiedlichen Icons jeweils ein anderes Kontext-Menü aufgerufen.
Im Kapitel 13.6 Kontextmenü – TrayIcon finden Sie ein Projekt, dass ausgewählte Eigenschaften, Methoden und Ereignisse der Klasse TrayIcon einsetzt.
19.2.2 Klasse TrayIcons
Diese Klasse implementiert eine virtuelle Sammlung aller TrayIcon-Objekte, die von einer Anwendung verwaltet werden. Diese Klasse verhält sich wie eine Nur-Lese-Klasse.
Dim hTrayIcon As TrayIcon hTrayIcon = TrayIcons [ Index As Integer ]
Über alle TrayIcon-Objekte kann mit dem Schlüsselwort-Paar „For Each“ iteriert werden:
Dim hTrayIcon As TrayIcon For Each hTrayIcon In TrayIcons ... Next
Während die Eigenschaft TrayIcons.Count die Anzahl der von einer Anwendung verwalteten TrayIcon-Objekte zurück gibt, löscht die einzige Methode TrayIcons.DeleteAll() der Klasse TrayIcons alle TrayIcon-Objekte.
