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
Message
par maitre we » dim. 27/nov./2005 0:05
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
bernard13
Messages : 1221 Inscription : mer. 05/janv./2005 21:30
Message
par bernard13 » dim. 27/nov./2005 9:17
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 » dim. 27/nov./2005 10:25
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.
Chris
Messages : 3731 Inscription : sam. 24/janv./2004 14:54
Contact :
Message
par Chris » dim. 27/nov./2005 10:30
Non, Heis.
Il est correct son code !
Les Select/EndSelect sont à leur place
Heis Spiter
Messages : 1092 Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :
Message
par Heis Spiter » dim. 27/nov./2005 10:51
Ah oui
. Faut dire que le code n'est pas d'une clarté extrème
.
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » dim. 27/nov./2005 11:10
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 ????
Chris
Messages : 3731 Inscription : sam. 24/janv./2004 14:54
Contact :
Message
par Chris » dim. 27/nov./2005 11:15
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.
Chris
Messages : 3731 Inscription : sam. 24/janv./2004 14:54
Contact :
Message
par Chris » dim. 27/nov./2005 11:20
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.
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » dim. 27/nov./2005 11:31
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 » dim. 27/nov./2005 16:00
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 .
Chris
Messages : 3731 Inscription : sam. 24/janv./2004 14:54
Contact :
Message
par Chris » dim. 27/nov./2005 17:06
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 » dim. 27/nov./2005 18:11
ben chacun fait bien comme il veux
bernard13
Messages : 1221 Inscription : mer. 05/janv./2005 21:30
Message
par bernard13 » lun. 28/nov./2005 8:38
merci chris quel est ta premiere façon de le faire ?
Chris
Messages : 3731 Inscription : sam. 24/janv./2004 14:54
Contact :
Message
par Chris » lun. 28/nov./2005 9:21
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.