Utiliser le code ou utiliser l'IDE pour mettre à jour un ToolTip :
Problème :
- Dans le programme LecteurMulti que nous utiliserons comme exemple,
(voir la forge), nous voulons que le ToolTip du TrayIcon se mette à jour dès que nous changeons de radios, par le ComboBox.Index ou par une action de la roulette de la souris sur le TrayIcon.
Deux façons d'appréhender ce sujet, soit à l'aide de l'IDE soit par le code directement.
Pour commencer, il faut avoir coché les cases gb.desktop, gb.desktop.x11, gb.dbus et gb.gui.trayicon dans les propriétés de notre projet pour accéder à un contrôle tout prêt à l'emploi qu'il suffit de déposer sur son formulaire grâce à l'IDE ou de créer et d'instancier par le code, pour, après avoir renseigné ses propriétés ou évènements, pouvoir l'utiliser.
Les évènements possibles du TrayIcon :_Click
_MiddleClick
_Scroll
Les Propriétés à renseigner du TrayIcon :Picture
PopupMenu
Tag
ToolTip
1°) création et instanciation du TrayIcon1
L'IDE s'en charge, sinon par le code, nous devons tout écrire, la déclaration et l'instanciation avant de pouvoir nous en servir.
1
2
3
4
5
6
7
8
9
| 'déclaration STATIC PRIVATE TrayIcon1 AS TrayIcon '<-----------' création du TrayIcon par une déclaration
PUBLIC SUB _new()
TrayIcon1 = NEW TrayIcon AS "TrayIcon1" '<------' instanciation du TrayIcon DefTrayIcon() '<--------------------------------' permet d'avoir l'affichage de l'icône rapidement END
|
2°) définition des propriétés et des évènements du TrayIcon1.
Après sélection du TrayIcon1 dans l'IDE nous informons les propriétés dans celui-ci ou nous créons une procédure pour rentrer ces informations, ici c'est le rôle de la procédure DefTrayIcon
1
2
3
4
5
6
7
8
| PRIVATE SUB DefTrayIcon() '<------------------------' définition du TrayIcon par ses propriétés par le code
TrayIcon1.Tag = "- Cliquer gauche :\tFenêtre.\n- Cliquer droit :\tMenu.\n- Roulette :\t\tStations." TrayIcon1.Tooltip = TrayIcon1.Tag & "\n" & "- Radio :" & "\t" & ComboBox1.Text TrayIcon1.Picture = Picture.Load("icon:/32/administrator") TrayIcon1.PopupMenu = "Menu1" TrayIcon1.Show() '<------------------------------' une des Méthodes du TrayIcon END
|
3°) Utilisation de l'évènement scroll du TrayIcon1
1
2
3
4
5
6
7
8
9
| PUBLIC SUB TrayIcon1_Scroll(Delta AS FLOAT, Orientation AS INTEGER) '<-----------' évènement scroll du TrayIcon1
DIM pos AS INTEGER
pos = CInt(Delta) * Orientation ComboBox1.Index -= pos '<-----------------------' modification de l'index grâce à la roulette DefTrayIcon() '<---------------------------------' juste après le changement de ComboBox1.index pour prendre les modifications en compte
END
|
4°) Utilisation de la modification d'index du ComboBox1
1
2
3
4
5
6
7
8
9
10
11
| PUBLIC SUB ComboBox1_Click() '<---------------------' sélection dans la liste des radios. Utilisation de l'évènement _Click car le ComboBox1 est en lecture seule.
ind = ComboBox1.Index $sStationChoisie = saStationUrl[ind] ComboBox1.Text = ComboBox1.List[ind]
ToggleButton1.Value = FALSE WAIT ' pour attendre la bascule ToggleButton1.Value = TRUE
END
|
Codes supplémentaires :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| PRIVATE SUB stations() '<----------------' sélection des stations web de radio
$sStationChoisie = saStationUrl[ind] '<-------------' la station choisie correspond à l'index du combobox
WITH ComboBox1 .ReadOnly = TRUE .List = saNom .Text = .List[ind] '<----------------------------' le comboBox.Text correspond à l'index du comboBox END WITH
CATCH
END
PUBLIC SUB Form_Open() stations() '<----------------------------------' sélection des stations radio DefTrayIcon() '<-------------------------------' définition du TrayIcon après stations pour récupérer le nom de la radio END
|
La limitation avec l'IDE c'est qu'ici, nous devons définir les propriétés par le code, dans la procédure DefTrayIcon, pour une mise à jour immédiate, du champ ToolTip.
Donc, ici pour résoudre notre problème, nous pouvons soit mélanger utilisation du code et de l'IDE soit utiliser uniquement le code.
Conclusion :
Si on utilise l'IDE, il faudra penser à commenter ces deux lignes du code :
1
2
| STATIC PRIVATE TrayIcon1 AS TrayIcon '<-------------' création du TrayIcon par une déclaration TrayIcon1 = NEW TrayIcon AS "TrayIcon1" '<--------' instanciation du TrayIcon
|
====================
Navigation :
<-- Liens du Wiki <-- <-- Accueil du WIKI : <-- ====================
La Documentation :
====================