Seite 1 von 2

Trackbargadget + stringgadget

Verfasst: 15.04.2006 12:37
von sen-me
Ich versuche ganze Zeit irgendwie die beiden zu verknüpfen.
Also ich will z.B. wenn ich in dem Feld was eingebe, dann will ich den Balken auf der eingegebenen Zahl setzen (automatisch) (ob die Zahl unw. gültig ist wird schon geprüft)
Das selbe spiel andersrum, wenn man den Balken bewegt, soll sich im StringGadget die Zahl auf der sich der Balken gerade befindet selbst einfügen. (Am besten die Zahl ändert sich schon bevor man den Balken wieder los lässt, ist abe rnicht zwingend)

Re: Trackbargadget + stringgadget

Verfasst: 15.04.2006 13:07
von Kiffi
versuch's mal hiermit:

Code: Alles auswählen

Enumeration
  
  #Window
  #StringGadget
  #Trackbar
  
EndEnumeration

If OpenWindow(#Window, 0, 0, 320, 100, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  
  If CreateGadgetList(WindowID(#Window))
    
    StringGadget  (#StringGadget, 10,  20, 250, 20,"0")
    TrackBarGadget(#Trackbar, 10,  40, 250, 20, 0, 10000)
    
    Repeat
      
      WWE = WaitWindowEvent()
      EG  = EventGadget()
      
      Select WWE
        
        Case #PB_Event_Gadget
          
          Select EG
            
            Case #Trackbar
              SetGadgetText(#StringGadget, Str(GetGadgetState(#Trackbar)))
              
            Case #StringGadget
              SetGadgetState(#Trackbar, Val(GetGadgetText(#StringGadget)))
              
          EndSelect
          
      EndSelect
      
    Until WWE = #PB_Event_CloseWindow
    
  EndIf
  
EndIf
Grüße ... Kiffi

Verfasst: 15.04.2006 13:24
von uweb

Code: Alles auswählen

#Min = 0
#Max = 100

If OpenWindow(0,0,0,320,200,"TrackBarGadget",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  StringGadget    (0, 10, 20,250, 20,"TrackBar Standard",#PB_Text_Center)
  TrackBarGadget(1, 10, 40,250,40,#Min,#Max)
  SetGadgetState(1, 50)

  Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 0
            If EventType() = #PB_EventType_Change
              text.s = GetGadgetText(0)
              x = Val(Text)
              If x < #Min  : x = #Min : ElseIf x > #Max : x = #Max : EndIf
              If x <> Wert : Wert = x : SetGadgetState(1, Wert) : EndIf
            EndIf
           Case 1
            Wert = GetGadgetState(1) 
            SetGadgetText(0, Str(Wert))
         EndSelect
     
     EndSelect
   Until Event = #PB_Event_CloseWindow
EndIf 
Meinst Du in etwa das ?

edit :

Man sollte eben doch vor dem senden schauen was sich in der Zwischenzeit getan hat.
:oops:
Sonst sehen die Leute wie lange man sich mit so etwas aufhält.

Verfasst: 15.04.2006 18:37
von sen-me
thx, aber da sind 2 Fehler drin O.o
1. Titel ist mit Flag vertauscht
2. Heist es EventGadgetID()

aba vll is das auch für PB4 gewesen?

Verfasst: 15.04.2006 18:43
von Macros
Genau, da stimmt der Code so,
man lernt wenn man PB 4 zu 3.94 konvertieren muss ;-)

Verfasst: 15.04.2006 18:43
von uweb
Ist es tatsächlich.

Verfasst: 15.04.2006 18:44
von vonTurnundTaxis
sen-me hat geschrieben:aba vll is das auch für PB4 gewesen?
Ja.

//Nachtrag:
Interessant: Drei verschiedene Antworten auf die selbe Frage ;)

Verfasst: 15.04.2006 18:46
von sen-me
gibt es eigtl. ein gegenteil zu Hex()?
also hex -> value ?

Verfasst: 15.04.2006 18:50
von Macros
Interessant ja, vor allem, weil die immer kürzer wurden :D

sen-me, so einen Befehl gibt es Standartmäßig nicht,
aber in Droopy´s Lib Hex2Dec()

Verfasst: 15.04.2006 18:50
von vonTurnundTaxis

Code: Alles auswählen

; English forum: http://purebasic.myforums.net/viewtopic.php?t=8597&highlight=
; Author: darklordz
; Date: 06. December 2003

Procedure.l _Hex2Dec(hex.s) 
    For r=1 To Len(hex.s) 
        d<<4 : a.s=Mid(hex.s,r,1) 
        If Asc(a.s)>60 
            d+Asc(a.s)-55 
        Else 
            d+Asc(a.s)-48 
        EndIf 
    Next 
    ProcedureReturn d 
EndProcedure 
Soetwas?

//Nachtrag:
Schon wieder zwei Antworten.
Und ich bin wieder der Letzte... Langsam wird das unheimlich.