SpinGadget est les valeurs négative

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

SpinGadget est les valeurs négative

Message par Thyphoon »

Je ne sais pas si c'est un bug ou une limitation du gadget SpinGadget
mais si on met en valeur minimal -100 et en valeur maximum 100
ça ne fonctionne pas...
descendez en de sous de zero ...

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 160, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    SpinGadget     (0, 20, 20, 100, 25, -100, 100)
    Repeat
      Evenement = WaitWindowEvent()
      If Evenement = #PB_Event_Gadget
        If EventGadget() = 0
          SetGadgetText(0,Str(GetGadgetState(0)))
        EndIf
      EndIf
    Until Evenement = #PB_Event_CloseWindow
  EndIf
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Bon et bien une fois de plus c'est de ma faute.
Je testais a partir de l'exemple fournit et j'ai trouvé l'erreur

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 160, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    SpinGadget     (0, 20, 20, 100, 25, -100, 100,#PB_Spin_Numeric)
    Repeat
      Evenement = WaitWindowEvent()
      If Evenement = #PB_Event_Gadget
        If EventGadget() = 0
          ;SetGadgetText(0,Str(GetGadgetState(0)))
        EndIf
      EndIf
    Until Evenement = #PB_Event_CloseWindow
  EndIf
Là ça fonctionne Désolé si certain se son posé le problème
:P
jef
Messages : 11
Inscription : jeu. 29/juil./2004 12:19

Spingadget valeur negative

Message par jef »

En reprenant ton code précédant je pije toujours pas comment récupérer la valeur en négatif!!!


Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0)) 
    SpinGadget     (0, 20, 20, 100, 25, -100, 100,#PB_Spin_Numeric) 
    TextGadget(1,150,20,100,20,"..")
    Repeat 
      Evenement = WaitWindowEvent() 
      If Evenement = #PB_Event_Gadget 
        If EventGadget() = 0 
          SetGadgetState(0,(GetGadgetState(0))) 
          SetGadgetText(1,Str(GetGadgetState(0))) 
        EndIf 
      EndIf 
    Until Evenement = #PB_Event_CloseWindow 
  EndIf 
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Message par Neosis »


Je c'est que ma méthode peut paraître bizarre ... mais ça marche :D
Pour récupérer la valeur en négatif:

Si quelqu'un connait un moyen plus simple je suis preneur
If OpenWindow(0, 0, 0, 300, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))

SpinGadget(0, 20, 20, 100, 25, -100, 100,#PB_Spin_Numeric)
TextGadget(1,150,20,100,20,"..")
Structure value
valeur.b
EndStructure

Repeat

Evenement = WaitWindowEvent()
If Evenement = #PB_Event_Gadget

If EventGadget() = 0

valeur=GetGadgetState(0) ; on prend la valeur numérique du spingadget

If valeur>100 ; si la valeur et supérieurs a 100 cela signifie que l'on est dans les négatifs
valeur$=GetGadgetText(0) ; on va chercher le texte dans le spin gadget (bien qu'il s'agisse d'un chiffre)
SetGadgetText(1,valeur$) ; on affiche le text (la valeur en faite)
Else ; sinon ba.... :)
SetGadgetText(1,Str(valeur)) ; tu affiche tous simplement la valeur
EndIf

EndIf
EndIf
Until Evenement = #PB_Event_CloseWindow
EndIf
RV
Messages : 209
Inscription : sam. 18/nov./2006 15:16

Message par RV »

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0)) 
    SpinGadget     (0, 20, 20, 100, 25, -100, 100,#PB_Spin_Numeric) 
    TextGadget(1,150,20,100,20,"..") 
    Repeat 
      Evenement = WaitWindowEvent() 
      If Evenement = #PB_Event_Gadget 
        If EventGadget() = 0 
          SetGadgetText(1,GetGadgetText(0)) 
        EndIf 
      EndIf 
    Until Evenement = #PB_Event_CloseWindow 
  EndIf  
:wink:
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Message par Neosis »

Effectivement c'est plus simple :lol: ... j'aurai pu y pensé quand même, pourquoi je cherche compliqué :?
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Message par PAPIPP »

Voici un code qui fonctionne en passant par une variable gad.b

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 300, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
    SpinGadget     (0, 20, 20, 100, 25, -100, 100,#PB_Spin_Numeric)
    TextGadget(1,150,20,100,20,"..")
    Repeat
      Evenement = WaitWindowEvent()
      If Evenement = #PB_Event_Gadget
        If EventGadget() = 0
          SetGadgetState(0,(GetGadgetState(0)))
          gad.b=GetGadgetState(0)
          SetGadgetText(1,Str(gad))
        EndIf
      EndIf
    Until Evenement = #PB_Event_CloseWindow
  EndIf 
A+
Répondre