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

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 :roll:.
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 ! :roll:

Les Select/EndSelect sont à leur place

Publié : dim. 27/nov./2005 10:51
par Heis Spiter
Ah oui 8O. Faut dire que le code n'est pas d'une clarté extrème :oops:.

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 ???? 8O

Publié : dim. 27/nov./2005 11:15
par Chris
Heis Spiter a écrit :Ah oui 8O. Faut dire que le code n'est pas d'une clarté extrème :oops:.
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. :lol:

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 ???? 8O
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 :lol:

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