Page 1 sur 1

Actualisation d'un gadget

Publié : mar. 26/juil./2011 16:08
par blendman
salut

J'essaie de récupérer l'état d'un gadget en temps réel, est-ce possible ?

Voici un essai pour le code :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 305, 140, "ScrollBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    ScrollBarGadget  (0,  10, 42, 250,  20, 0, 251, 0)
    SetGadgetState   (0,  50)
    TextGadget       (1,  10, 25, 250,  20, "curseur : "+Str(GetGadgetState(0)),#PB_Text_Center)
    
    Repeat
      event = WaitWindowEvent(1)      
      Select event
        Case 0
          t =GetGadgetState(0)
          SetGadgetText(1,"curseur : "+Str(t))
      EndSelect                
    Until event = #PB_Event_CloseWindow
  EndIf
Comme vous le voyez, lorsqu'on bouge la barre, on a la valeur du curseur.
Mais on n'a cette valeur que lorsque la souris est relâchée.
Y'a-t-il un moyen d'avoir cette valeur alors que la souris est encore cliquée et qu'on est en train de déplacer la barre ?

Merci :)

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 16:19
par Ar-S
En utilisant un thread ça peu le faire.

Code : Tout sélectionner

quite = 0
Declare.l CurseurFocus(*ARS)

If OpenWindow(0, 0, 0, 305, 140, "ScrollBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ScrollBarGadget  (0,  10, 42, 250,  20, 0, 251, 0)
  SetGadgetState   (0,  50)
  TextGadget       (1,  10, 25, 250,  20, "curseur : "+Str(GetGadgetState(0)),#PB_Text_Center)
  thread=CreateThread(@CurseurFocus(),123)
  Repeat
    Event = WaitWindowEvent(1)     
    
    If Event = #PB_Event_CloseWindow       
      quite = 1
    EndIf
    
  Until quite = 1 
  End
EndIf

Procedure.l CurseurFocus(*ARS)
  Repeat
    t = GetGadgetState(0)
    SetGadgetText(1,"curseur : "+Str(t))
    Delay(20)
  Until quite = 1
EndProcedure


Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 16:52
par blendman
Effectivement ça marche, mais ça veut dire que je dois utiliser un thread pour tous les eventgadgets, si je veux récupérer des données en temps réel ?

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 17:03
par Backup
.................

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 17:05
par Ar-S
J'avoue ne jamais y avoir mis (ou presque) le bout du groin dans les callbacks

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 17:14
par Backup
ben regarde mon ex ci dessus :)

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 18:04
par blendman
J'ai regardé l'exemple avec les callback, mais ça n'actualise pas le texte du gadget lorsque je bouge la barre, uniquement, lorsque je relâche le clic souris (et la barre en même temps du coup).

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 18:28
par Backup
j'ai corrigé .. sorry

[reedit]

j'ai rere corrigé , parce qu'il y avait un petit problème de redraw au démarrage ....

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 18:58
par Ar-S
je vais le mettre dans un coin ^^ (et un dossier de plus un !) :mrgreen:

Re: Actualisation d'un gadget

Publié : mar. 26/juil./2011 19:38
par blendman
ah oui, cool :)

merci