Trackbargadget + stringgadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Trackbargadget + stringgadget

Beitrag 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)
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Trackbargadget + stringgadget

Beitrag 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
a²+b²=mc²
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag 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.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag 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?
Bild
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Genau, da stimmt der Code so,
man lernt wenn man PB 4 zu 3.94 konvertieren muss ;-)
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ist es tatsächlich.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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 ;)
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

gibt es eigtl. ein gegenteil zu Hex()?
also hex -> value ?
Bild
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag 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()
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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.
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Antworten