initialisation de EventGadget()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

initialisation de EventGadget()

Message par Kwai chang caine »

Bonjour à tous.

J'ai une question toute bete, mais dont je n'ai encore pas pu trouver la réponse.
J'en déduit que ce doit etre impossible.
Mais je demande quand meme, on sait jamais :)

Peut on remettre à zéro EventGadget() car d'apres ce que j'ai compris il garde en memoire le dernier gadget utilisé.
Ou bien sommes nous obligé de passer par une variable que l'on mettra elle à zéro, pour savoir si l'evenement viens juste d'etre réalisé et ne pas confondre avec un evenement déja mémorisé il y a un moment.

Merci de votre réponse
Bonne soirée.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je ne comprend pas ce que tu dis, je ne vois pas comment on peut confondre un évènement avec un autre, chaque évènement est unique et on ne peut en traiter qu'un à la fois.

Initialiser EventGadget() n'as pas de sens pour moi, cela dit on doit pouvoir forcer sa valeur avec une API en envoyant un message bidon, mais c'est bizarre cette façon de faire, il vaut mieux passer par une variable.

Pourrais tu expliquer exactement ton problème de message avec un code?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour Nico

Venant du VB ou les evenements sont autogérés, je n'ai pas encore compris parfaitement les subtilités de la même gestion en PURE.

Par exemple le double-clic droit ou gauche sur un gadget, doit on recuperer l'evenement sur la fenetre et tester apres sur quel gadget on a cliqué, ou bien directement sur le gadget ou parfois je crois qu'il ne gere pas certains evenement.
Parfois les deux cas marche, parfois ça ne marche pas vraiment Ex: Survol du gadget, etc...

J'avais trouvé un squelette qui m'avait bien aidé, mais il n'y avait pas tous les evenements possibles, c'est vrai il y en a tellement.
Il faut dire pour la premiere fois depuis 1 an que je fais du pure, je regrette un peu VB pour cette seule raison. :?
Autrement tout le reste est trop top :10:

Il est pas facile de comprendre dans quel ordre on doit gérer les événements quand il y en a plusieurs en meme temps (Fenetre + gadget)
Y a t'il plusieurs soluces à chaque fois, selon l'humeur, ou bien il y a la meilleure méthode et les autres ralentissent la machine.

Je dois surement mal m'y prendre, mais tant que l'on a pas le déclic :

Code : Tout sélectionner

Procedure EvenementFenetreSimpleClicDroit()
 
 If EventGadget() = #BoutonCreer
  ; Code
  ; Code
  ; Code
  ; Code
  
  ; initialisation pour etre sur qu'au deuxieme clic droit si ce n'est pas sur un gadget
  ; il n'est pas encore la valeur en memoire d'un gadget que l'on a pas cliqué la deuxieme fois
 EndIf 

EndProcedure

Repeat   
 
 Select WaitWindowEvent()

  Case #WM_LBUTTONDOWN 
   GadgetSurvoler()
   EvenementFenetreSimpleClicGauche()
  Case #WM_LBUTTONDBLCLK 
   EvenementFenetreDoubleClicGauche()
  Case #WM_RBUTTONDOWN 
   EvenementFenetreSimpleClicDroit()
  Case #PB_Event_Gadget
   EvenementGadget() 
  Case #PB_Event_Menu
   EvenementMenu()
    
 EndSelect
 
ForEver 
Je te remercie beaucoup de ton interet 8)
Passe une bonne journée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

D'accord, je vois!

Un évènement correspond à une action, donc il faut consulter la doc MSDN pour en retirer toutes les infos, car un évènement est associé à d'autres paramètres (lparam et wparam) qui permettent de traiter correctement cet évènement.

D'ailleurs pour le mouse over, j'ai justement voulu le codé ainsi comme si les évènements était natifs; je crois qu'on devrait pouvoir faire de même pour les autres évènements manquants.

Maintenant, certaines personnes essayent de faire des trucs tordus plus difficile à gérer comme le double click sur un bouton, mais si on s'en tient au raisonnable, c'est relativement aisé à faire.

Dis moi quel évènement manquant tu souhaites ajouter pour chaque gadget précisément, juste click droit et double click?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour NICO

Excuse moi d'avoir été aussi long dans la réponse.

Du coup n'ayant pas de réponse, j'ai créé un nouveau POST à ce sujet qui me parait à moi assez important.

http://purebasic.forum-gratuit.com/viewtopic.php?t=5784

Merci de ton attention.
Bonne soirée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre