Page 1 sur 1

Problèmes évènements

Publié : lun. 09/mai/2016 14:03
par Shadow
Bonjour,

Je rencontre un soucis avec mon programme (Rad-Maker).
Comment je dois procéder pour géré non seulement les évènements de mon Canvas (Automatiquement) mais aussi celui de l'utilisateur ?

Par exemple, si l'utilisateur fait un "Bouton souris gauche enfoncé sur le Canvas", là, je dois intercepté cet évènement pour dessiner la sélection
mais je ne dois pas bloquer les évènement pour que l'utilisateur puisse aussi les avoir !

Je dois géré les évènements du Canvas mais aussi les "Renvoyer" à l'utilisateur pour par exemple
savoir si il à cliquer sur le Canvas pour faire ses trucs à lui par la suite.

Je rencontre un soucis parce que mes évènement sont géré mais pas renvoyé, je sais pas si je suis clair.
Comment je dois géré ça svp ? :)

Re: Problèmes évènements

Publié : lun. 09/mai/2016 14:22
par Bernie
peux etre un passant par un Flag :

Code : Tout sélectionner

Global évènements de mon Canvas.b = #TRue 
 Global évènements pour l'utilisateur.b = #True 
ou par une structure GestionCanvas

Re: Problèmes évènements

Publié : lun. 09/mai/2016 16:53
par microdevweb
Je t'envoie à la doc et EventType() pour la liste de tous les événements gérable (pratiquement tout est gérable avec un canvas)...

Bernie arrêtes de ra-compter des bêtises.

Exemple:

Code : Tout sélectionner

#MainForm=0
#MainCanvas=0
Procedure Exit()
    End
EndProcedure
Procedure EventCanvas()
    Select EventType()
            Case #PB_EventType_MouseEnter
                Debug "Entre sur le canvas"
            Case #PB_EventType_MouseLeave
                Debug "Sort du canvas"
            Case #PB_EventType_LeftClick
                Debug "Clique bt gauche"
            Case #PB_EventType_RightClick
                Debug "Clique bt droit"
            Case #PB_EventType_LeftDoubleClick
                Debug "double clique bt gauche"
            ; etc ....
    EndSelect
EndProcedure
Procedure Open()
    OpenWindow(#MainForm,0,0,800,600,"Teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
    CanvasGadget(#MainCanvas,0,0,800,600)
    ; Mise en place des callback
    BindEvent(#PB_Event_CloseWindow,@Exit(),#MainForm)
    BindGadgetEvent(#MainCanvas,@EventCanvas())
EndProcedure
Open()
Repeat:WaitWindowEvent():ForEver

Re: Problèmes évènements

Publié : lun. 09/mai/2016 18:24
par microdevweb
Voila un petit tuto qu'i pourra t'aider.

http://www.purebasic.fr/french/viewtopi ... 42#p182942

Re: Problèmes évènements

Publié : lun. 09/mai/2016 23:41
par Shadow
Merci beaucoup Micro :)