Page 1 sur 1

[b]ButtonGadget garde sa valeur!!! [/b]

Publié : mer. 19/janv./2005 2:12
par bertrand
Hello... j'espere que quelqu'un pourra me repondre... 8O


j'utilise ButtonGadget pour declencher l'ouverture d'un FileRequester...
le bleme c'est que pendant l'exe du programme, le fileRequester reste ouvert (s'ouvre à chaque mouvement de souris... sur la fenetre)
--->
la condition If EventGadgetID()= #ButtonGadget demeure vraie apres le premier clic(j'ai fait le test en debugg)

so comment reinitialiser la valeur EventGadgetID() dans ma boucle apres ouverture du file requester... ca marche avec d'autre button qui on une valeur 0 ou 1... mais celui ci semble plus retords...

thanx.

b.



Repeat

WaitWindowEvent()


If EventGadgetID()= #ButtonGadget

keyframepath$ = OpenFileRequester("Choose Export KeyFrame File Name","*.*", "*.*", 0)

EndIf

Until EventGadgetID() = #Quit

Publié : mer. 19/janv./2005 2:49
par nico
Bienvenue sur le Forum, bertrand

Il te manque quelques lignes dans ton code:

Code : Tout sélectionner

Enumeration
  #Window
EndEnumeration
  
Enumeration
  #ButtonGadget 
EndEnumeration 

 
If OpenWindow(#Window,0,0,400,400,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Pure Basic")
  CreateGadgetList(WindowID(#Window))
  
  ButtonGadget(#ButtonGadget ,10,50,100,20,"popo")
  
  ;La boucle Repeat-Until sert à la gestion des évènements    
  Repeat
    EventID.l=WaitWindowEvent() ; on récupère un évènement
    Select EventID              ; on sélectionne cet évènement
      Case #PB_EventGadget      ; cet évènement concerne une action sur un Gadget
        Select EventGadgetID()  ; dans ce cas, on récupère l'identifiant du gadget qui l'a créé
          Case #ButtonGadget    ; on compare l'identifiant à  #ButtonGadget
                                ; si celui-ci correspond, on exécute les lignes ci-dessous
            keyframepath$ = OpenFileRequester("Choose Export KeyFrame File Name","*.*", "*.*", 0) 
            Debug keyframepath$
        EndSelect 
        
      Case #PB_Event_CloseWindow  ; cet évènement concerne la fermeture de la fenêtre
        Quit=1
        
    EndSelect 
  Until Quit=1 
EndIf 

Publié : jeu. 20/janv./2005 0:40
par bertrand
Ouf ! :D

j'ai pu m'en sortir avec ton source...
merci pour ton investissement ca a servi !

j'avoue que j'ai un peu de mal à gerer cette gestion de fenetre...

pendant que j'y suis y'a pas de WaitVbl en PB ? -a part "switchbuffer"

moi j'avais ecrit ca à l'epoque en asm: mais j'arive pas à le compiler ds PB...

mov dx,03dah ;WaitVbl
wvbl:
in al,dx
test al,8h
jnz wvbl:
wvbl2:
in al,dx
test al,8h
jz wvbl2:


allez kiss, merci encore et bonne année

bertrand