[OK] BindGadgetEvent pour la même proce sur N gadgets ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

[OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Ar-S »

Y'a t il une syntaxe pour remplacer un cas comme ça sans avoir à mettre 2x BindGadgetEvent:

Code : Tout sélectionner

 Case #PB_Event_Gadget
        Select EventGadget()
          Case #Lmin,  #Lsec ; <<<<<<<<<<<<
            ;Code
  
        EndSelect
Merci
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: BindGadgetEvent pour la même proce sur plusieurs gadgets

Message par Fred »

Non, il faut mettre 2 BindGadgetEvent(). Sinon, tu peux en mettre un seul BindEvent(#PB_Event_Gadget, ...) et faire ce test dans ta callback, mais l'interet est plutot limité.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: BindGadgetEvent pour la même proce sur plusieurs gadgets

Message par Ar-S »

Ok merci Fred,
Du coup puis-je utiliser des BindGadgetEvent pour certains gadgets, un BindEvent pour mon timer mais laisser ma partie "double gadget pour 1 proce" dans la boucle sans que ça cause de soucis ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: BindGadgetEvent pour la même proce sur plusieurs gadgets

Message par Fred »

Oui, ca devrait marcher meme si c'est pas conseillé de mixer tout.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: BindGadgetEvent pour la même proce sur plusieurs gadgets

Message par Ar-S »

J'ai testé ça a l'air de bien fonctionner.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par falsam »

Si tu as pas mal de gadgets, tu peux aussi inclure ton BindGadgetEvent() dans une boucle For .... Next

Code : Tout sélectionner

Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #First
  #Second
  #Third
  #Fourth
  #Fifth
EndEnumeration
 
y=10

Procedure OnClick()
  Debug "Clique sur le bouton " + EventGadget()
EndProcedure

If OpenWindow(#MainForm, 0, 0, 500, 400, "BindGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)   
  For Gadget = #First To #Fifth
    ButtonGadget(Gadget, 400, y, 80, 22, "Button" + Str(Gadget)) 
    y + 30
    
    BindGadgetEvent(Gadget, @OnClick())
  Next
    
  Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Ar-S »

Mouais pour des actions similaires sur différents gadgets je préfère tout de même le Case #G1,#G2,#G3
C'est dans ce cas là le plus simple et le moins redondant.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Micheao »

c'est nouveau ce BindGadgetEvent
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par falsam »

Micheao a écrit :c'est nouveau ce BindGadgetEvent
C'est une question ? une affirmation ?

Dans tous les cas Non ce n'est pas nouveau. La version 5.31 de PureBasic intégrée déja cette fonctionnalité.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Micheao »

falsam a écrit :
Micheao a écrit :c'est nouveau ce BindGadgetEvent
C'est une question ? une affirmation ?

Dans tous les cas Non ce n'est pas nouveau. La version 5.31 de PureBasic intégrée déja cette fonctionnalité.
j'ai été pas au courant désoler
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Fred »

Ar-S a écrit :Mouais pour des actions similaires sur différents gadgets je préfère tout de même le Case #G1,#G2,#G3
C'est dans ce cas là le plus simple et le moins redondant.
Dans ce cas BindEvent() fera l'affaire:

Code : Tout sélectionner

 Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #First
  #Second
  #Third
  #Fourth
  #Fifth
EndEnumeration

y=10

Procedure OnGenericClick()
  Select EventGadget()
    Case 1,2,3
      Debug EventGadget()
  EndSelect
  
EndProcedure

If OpenWindow(#MainForm, 0, 0, 500, 400, "BindGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)   
  For Gadget = #First To #Fifth
    ButtonGadget(Gadget, 400, y, 80, 22, "Button" + Str(Gadget))
    y + 30
  Next
  
  BindEvent(#PB_Event_Gadget, @OnGenericClick())

   
  Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
EndIf
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Ar-S »

C'est juste nikel :P
Merci !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Ar-S »

Je rouvre ce topic car j'ai un nouveau soucis de BindEvent.
#WM_LBUTTONDOWN est bien un event ?
Si je fais

Code : Tout sélectionner

Procedure BougeFenetre()
   SendMessage_(WindowID(#MAFENETRE), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
EndProcedure

Openwindows (etc...)
BindEvent(#WM_LBUTTONDOWN, @BougeFenetre())
Dans une boucle classique de Repeat Until la procedure marche bien.

Une idée de pourquoi ça ne fonctionne pas ?


----EDIT----

En 5.31 ça fonctionne, en 5.41 ça ne fonctionne pas
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Micheao »

BOnsoir Ar-S

si j'ai bien compris tu veux pas passer par une boucle Repeat Until
Dernière modification par Micheao le mer. 23/déc./2015 18:53, modifié 1 fois.
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: [OK] BindGadgetEvent pour la même proce sur N gadgets ?

Message par Fred »

#WM_LBUTTONDOWN n'est pas evenement purebasic, donc ca ne marchera pas BindEvent().
Répondre