Identifié un clic sur une ImageGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Identifié un clic sur une ImageGadget

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

Message par bernard13 »

deja
peux tu donner un bout de code
pour essayer de 'taider
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

C'est pas normal, donne un code de test!
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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
:?
Vive le temps libre !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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 
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Ben sa fait la même chose ?????? :?
Vive le temps libre !
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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.
Vive le temps libre !
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Message par Torp »

Sous XP :

Quand je clique ---> 13100 puis 7
Quand je relache -> 514

...
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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)
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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 ????
Vive le temps libre !
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Il ya eu souvent des problèmes avec Win2000, peut-être un bug
Répondre