Gambas France BETA


Pas de compte ? Incription

Code ou IDE :

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 :



====================