les GadgetToolTip

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
maitre we
Messages : 42
Inscription : mer. 23/nov./2005 23:50

les GadgetToolTip

Message 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:
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message 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

Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message 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.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Non, Heis.
Il est correct son code ! :roll:

Les Select/EndSelect sont à leur place
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Ah oui 8O. Faut dire que le code n'est pas d'une clarté extrème :oops:.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 !!
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message 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 .
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ben chacun fait bien comme il veux :lol:
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci chris quel est ta premiere façon de le faire ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

ok Chris
Répondre