User Tools

Site Tools


19.2 TrayIcon - TrayIcons

The gb.gui.trayicon component allows you to display a tray icon in the taskbar. The following system tray protocols are supported:

  • The old X11 Free Desktop System Tray specification,
  • the KDE DBus system tray protocol and
  • The Unity DBus system tray protocol.

The DBus system protocol should be standard, but unfortunately KDE and Ubuntu implementations are not compatible with each other! The component therefore examines at runtime which type of system tray is available on the system. The appropriate protocol is then selected automatically. The component gb.dbus is only loaded if the DBus protocol is also used.

While the TrayIcon class implements a tray icon, the TrayIcons class provides a virtual collection of all TrayIcon objects managed by an application.

19.2.1 Class TrayIcon

The class TrayIcon has these properties: Properties

PropertyData typeDescription
IconPictureReturns the icon or sets the icon for the tray icon.
PicturePictureA synonym for the icon property.
PopupMenuStringThe name of the menu is set or returned when a user clicks on the tray icon.
TagVariantReturns the value of the Tag property or sets the value of this property. This property is intended for the programmer and is never used by the component. tag can have any value of type Variant.
ToolTipStringReturns the text of the tool tip or sets the text of the tool tip displayed for the tray icon.
TextStringA synonym for the tooltip property.
VisibleBooleanSpecifies whether the tray icon is visible or sets True to indicate that the tray icon is visible.

Table Properties of the TrayIcon class Properties

The class TrayIcon has only three methods:

Delete ()Deletes a TrayIcon object.
Hide()Hide the tray icon from the system tray.
Show ()Displays the tray icon in the system tray.

Table Methods of the class TrayIcon

If you want to close the window of an application that uses a TrayIcon object, you must first use the TrayIcon.Hide () method! Events

Only three events are triggered by the class TrayIcon:

  • _Click,
  • _MiddleClick and
  • _Scroll (Delta As Float, Orientation As Integer)
ClickThis event is triggered when the user clicks on the tray icon with the left mouse button.
MiddleClickThis event is triggered when the user clicks on the tray icon with the middle mouse button.
Scroll (Delta As Float, Orientation As Integer)This event is triggered when the user scrolls with the mouse over the tray icon.

Table Events of the TrayIcon class

Notes on the Scroll (…) event

  • Delta is the delta value of the scrolling event. A positive value for Delta indicates that the wheel has been turned forward by the user. A negative value indicates that the wheel has been turned back to the user.
  • Orientation is the orientation of the scrolling event. Orientation can be one of the following constants: TrayIcon, Horizontal (0) and TrayIcon, Vertical (1).
  • Example of use: If you are using the mouse wheel, you can use the scroll (…) event to increase or decrease the volume of a player used in the main program.
  • In the download area you will find an interesting project by Gianluigi (, where the icon is alternatively changed via the scroll (…) event. This calls up a different context menu for different icons.

In chapter 13.6 Context menu - TrayIcon you will find a project that uses selected properties, methods and events of the class TrayIcon.

19.2.2 Class TrayIcons

This class implements a virtual collection of all TrayIcon objects managed by an application. This class behaves like a read-only class.

Dim hTrayIcon As TrayIcon
hTrayIcon = TrayIcons [ Index As Integer ]

All TrayIcon objects can be iterated with the keyword pair “For Each”:

Dim hTrayIcon As TrayIcon
For Each hTrayIcon In TrayIcons

While the TrayIcons.Count property returns the number of TrayIcon objects managed by an application, the only method TrayIcons.DeleteAll () of the TrayIcons class deletes all TrayIcon objects.


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: Eigenschaften

IconPictureGibt das Symbol zurück oder setzt das Symbol für das Tray-Icon.
PicturePictureEin Synonym für die Icon-Eigenschaft.
PopupMenuStringDer Name des Menüs wird gesetzt oder zurück gegeben, wenn ein Nutzer auf das Tray-Icon klickt.
TagVariantGibt 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.
ToolTipStringGibt den Text des Tool-Tipps zurück oder setzt den Text des Tool-Tipps, der für das Tray-Icon angezeigt wird.
TextStringEin Synonym für die Tooltip-Eigenschaft.
VisibleBooleanGibt an, ob das Tray-Icon sichtbar ist oder legt mit True fest, dass das Tray-Icon sichtbar ist.

Tabelle Eigenschaften der Klasse TrayIcon Eigenschaften

Die Klasse TrayIcon besitzt nur drei Methoden:

Delete( )Löscht ein TrayIcon-Objekt.
Hide()Blendet Sie das Tray-Icon aus dem System-Tray aus.
Show()Zeigt das Tray-Icon im System-Tray an.

Tabelle Methoden der Klasse TrayIcon

Wenn Sie das Fenster einer Anwendung schließen wollen, die ein TrayIcon-Objekt verwendet, dann müssen Sie vorher die Methode TrayIcon.Hide() verwenden! Ereignisse

Nur drei Ereignisse werden durch die Klasse TrayIcon ausgelöst:

  • _Click,
  • _MiddleClick und
  • _Scroll(Delta As Float, Orientation As Integer)
ClickDieses Ereignis wird ausgelöst, wenn der Benutzer mit der linken Maustaste auf das Tray-Icon klickt.
MiddleClickDieses 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 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 (, 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

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.


The website uses a temporary session cookie. This technically necessary cookie is deleted when the browser is closed. You can find information on cookies in our privacy policy.
k19/k19.2/start.txt · Last modified: 02.07.2018 (external edit)

Page Tools