Page 1 sur 2
les GadgetToolTip
Publié : dim. 27/nov./2005 0:05
par maitre we
j'ai decouvert sa se soir : les GadgetToolTip
voici un exemple avec un code :
Code : Tout sélectionner
;les fenetre :
#fenetre_principale = 0
;le gadget :
#gadget_bouton_ok = 0
Procedure ouvre_fenetre_principale()
If OpenWindow(#fenetre_principale, 0, 0, 490, 200, #PB_Window_SystemMenu | #PB_Window_WindowCentered | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "fenêtre principale")
If CreateGadgetList(WindowID(0))
;on crée le bouton :
ButtonGadget(#gadget_bouton_ok, 12, 50, 225, 25, "Ok")
;on cré son GadgetToolTip :
GadgetToolTip(#gadget_bouton_ok,"Bouton ok") ;si on laisse le curseur de la souris sur le bouton ; un message s'affiche .
EndIf
EndIf
EndProcedure
Procedure Gestion_bouton_OK(Numero_bouton.l)
MessageRequester("Info", "Vous avez appuyé sur le bouton " , 0 + 4 * 16)
EndProcedure
Ouvre_Fenetre_principale()
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
Select EventGadgetID()
Case #gadget_bouton_ok
Gestion_bouton_OK(1)
EndSelect
EndIf
Until Event = #PB_EventCloseWindow
End
je ne sais pas si c'est bien dit (les commentaires) . Sa serai pas mal qu'un "plus expérimenté" l" refasse

Publié : dim. 27/nov./2005 9:17
par bernard13
bonjour
d'abord utilise la commande ENUMERATION et ENDENUMERATION en debut de code :
Code : Tout sélectionner
enumeration
#fenetre_principale
endenumeration
enumeration
#gadget_bouton_ok
endenumeration
ensuite ecris ta boucle comme ceci par besoin de mettre IF et ENDIF
Code : Tout sélectionner
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case #gadget_bouton_ok :Gestion_bouton_OK(1)
EndSelect
Case #PB_Event_CloseWindow
fermer_Fenetre=1
EndSelect
Until fermer_Fenetre=1
End
Publié : dim. 27/nov./2005 10:25
par Heis Spiter
M'étonnerai sérieusement qu'elle marche ton affaire bernard13

.
Il y a un EndSelect qui ne se balade pas au bon endroit, qui devrait être à la fin des séléctions.
Publié : dim. 27/nov./2005 10:30
par Chris
Non, Heis.
Il est correct son code !
Les Select/EndSelect sont à leur place
Publié : dim. 27/nov./2005 10:51
par Heis Spiter
Ah oui

. Faut dire que le code n'est pas d'une clarté extrème

.
Publié : dim. 27/nov./2005 11:10
par Backup
par contre son
Code : Tout sélectionner
enumeration
#fenetre_principale
endenumeration
enumeration
#gadget_bouton_ok
endenumeration
n'est pas forcement necessaire pour 2 Constantes
au mieux il aurai du lui conseiller ceci :
Code : Tout sélectionner
enumeration
#fenetre_principale
#gadget_bouton_ok
endenumeration
pourquoi lui dire de mettre deux fois
enumeration-endenumeration alors qu'un seul suffit ????

Publié : dim. 27/nov./2005 11:15
par Chris
Heis Spiter a écrit :Ah oui

. Faut dire que le code n'est pas d'une clarté extrème

.
Ca, je ne te dis pas le contraire. C'est même un peu fouillis, ce qui est déjà une performance sur un code qui fait 10 lignes.
Mais une fois mis dans l'éditeur, il fonctionne correctement sous debugger sans alerte.
Publié : dim. 27/nov./2005 11:20
par Chris
Dobro a écrit :par contre son
Code : Tout sélectionner
enumeration
#fenetre_principale
endenumeration
enumeration
#gadget_bouton_ok
endenumeration
n'est pas forcement necessaire pour 2 Constantes
au mieux il aurai du lui conseiller ceci :
Code : Tout sélectionner
enumeration
#fenetre_principale
#gadget_bouton_ok
endenumeration
pourquoi lui dire de mettre deux fois
enumeration-endenumeration alors qu'un seul suffit ????

Parce qu'il vaut mieux éviter de mélanger fenêtres et gadgets, un gadget peut avoir le même index que la fenêtre dans laquelle il se trouve.
C'est vrai que pour une fenêtre et un gadget, ça ne pose pas de problème, mais autant prendre de bonnes habitudes dès le départ.
Publié : dim. 27/nov./2005 11:31
par Backup
Parce qu'il vaut mieux éviter de mélanger fenêtres et gadgets,un gadget peut avoir le même index que la fenêtre dans laquelle il se trouve.
justement ça ne peux pas arriver en faisant
Enumeration
#fenetre_principale
#gadget_bouton_ok
EndEnumeration
alors que si tu fait
Enumeration
#fenetre_principale
EndEnumeration
Enumeration
#gadget_bouton_ok
EndEnumeration
CallDebugger
Debug #fenetre_principale
Debug #gadget_bouton_ok
tu vas voir que #fenetre_principale et #gadget_bouton_ok ont la meme valeur !!
Publié : dim. 27/nov./2005 16:00
par bernard13
ecoutez j'ai toujours fais comme ceci
d'abord les fenetres et ensuite les gadgets
j'ai essayer d'aider maitre we pour qu'il un depart de code et une boucle correct .
Publié : dim. 27/nov./2005 17:06
par Chris
Non, mais t'as raison bernard13
Moi aussi, je dis que c'est comme ça qu'il faut faire, et pas tout mettre dans la même énumeration.
D'ailleurs, c'est toujours comme ça que je fais. Suffit de reprendre tous mes codes pour le voir
Par contre, sa boucle était correcte aussi, c'est une deuxième façon de la faire, c'est tout
Publié : dim. 27/nov./2005 18:11
par Backup
ben chacun fait bien comme il veux

Publié : lun. 28/nov./2005 8:38
par bernard13
merci chris quel est ta premiere façon de le faire ?
Publié : lun. 28/nov./2005 9:21
par Chris
bernard13 a écrit :merci chris quel est ta premiere façon de le faire ?
Moi, je préfère avec Select/Case, mais la méthode avec If/Else/Endif est bonne aussi.
Publié : lun. 28/nov./2005 11:21
par bernard13
ok Chris