Page 1 sur 1
Identifié un clic sur une ImageGadget
Publié : jeu. 16/juin/2005 8:36
par olivier
Sous windows 98, lorsque je clique sur une ImageGadget, pure me renvoie l'ID du gadget que je peux ensuite gérée. Mais sous 2000, cette ID n'est plus renvoyer ??? Lorsque je clique sur une ImageGadget il ne se passe rien .
Comment peux t'on savoir sur quelle image on à cliquer ?
(Autrement que par la position de la souris)
Merci d'avance
Publié : jeu. 16/juin/2005 16:53
par bernard13
deja
peux tu donner un bout de code
pour essayer de 'taider
Publié : jeu. 16/juin/2005 17:17
par nico
C'est pas normal, donne un code de test!
Publié : jeu. 16/juin/2005 19:25
par olivier
Un bout de code.... j'ai essayer de faire simple
Code : Tout sélectionner
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
If EventWindowID()=1
Evenement =WaitWindowEvent()
Debug Evenement
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
gadget=EventGadgetID()
Debug gadget
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
Sur win98 le debuger nous sort une serie de 512 et lorsque l'on clique sur l'image, 13100 et 7 qui correspond à l'id de l'image.
Sous win2000 j'ai juste une serie de 512 et lorsque je clique 513 et 514 correspondant au clique...
Sa vous la coupe........ou j'ai fait une c.....ie

Publié : jeu. 16/juin/2005 19:57
par nico
Essayes ça pour voir:
Code : Tout sélectionner
#STN_CLICKED=0
Procedure WindowCallback(WindowID, Message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select Message
Case #WM_COMMAND
Select wParam >>16
Case #STN_CLICKED
Debug "ImageGadget-callback"
EndSelect
EndSelect
ProcedureReturn Resultat
EndProcedure
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
SetWindowCallback(@WindowCallback())
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
If EventWindowID()=1
Evenement =WaitWindowEvent()
;Debug Evenement
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
Select EventType()
Case #PB_EventType_LeftClick
Select EventGadgetID()
Case 7
Debug "ImageGadget"
EndSelect
EndSelect
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
Publié : jeu. 16/juin/2005 21:14
par olivier
Ben sa fait la même chose ??????

Publié : jeu. 16/juin/2005 21:25
par olivier
Je viens de réessayer mon code sur un autre PC mais toujours sous win98 et je ne récupère pas non plus l'ID ????
Pouvez vous essayez et me dire si le debug affiche 13000 et 7 si vous cliquer sur l'image. (donner votre OS)
Merci d'avance.
Publié : jeu. 16/juin/2005 23:36
par Torp
Sous XP :
Quand je clique ---> 13100 puis 7
Quand je relache -> 514
...
Publié : ven. 17/juin/2005 5:52
par Anonyme2
Sous XP, même résultat que Torp
Ton code doit être modifié, EventWindowID() se place après un WaitWindowEvent() car c'est bien lorsque l'on a intercepté un événement que l'on regarde sur quelle fenêtre il a eu lieu et de quel type il s'agit, sinon on va perdre certains événements (voir la doc de PB)
Publié : ven. 17/juin/2005 18:15
par olivier
Bon je le change de place mais cela ne change rien, sous 2000, ou peut être cela vient d'autre part ????
Code : Tout sélectionner
OpenWindow(1,10,10,400,400, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar , "ess")
CreateGadgetList(WindowID())
ImageGadget(7, 5, 5, 200, 200, 0, #PB_Image_Border)
Quit=0
Repeat
Evenement =WaitWindowEvent()
Debug Evenement
If EventWindowID()=1
Select Evenement
Case #PB_EventGadget; *****************Choix d'un bouton
gadget=EventGadgetID()
Debug gadget
Case #WM_CLOSE ; ***************************#PB_EventCloseWindow
Quit=1
EndSelect
EndIf
Until Quit=1
Quelqu'un pourrais essayer sur win2000, j'y comprend rien ????
Publié : ven. 17/juin/2005 18:57
par Anonyme2
Il ya eu souvent des problèmes avec Win2000, peut-être un bug