TrackBarGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NeoRon
Beiträge: 67
Registriert: 22.03.2013 18:56

TrackBarGadget

Beitrag von NeoRon »

Hallo eine weitere Frage zu den Gadgets.

Das ja der Code um eine TrackBar mit Ticks zu erstellen.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 320, 200, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    TextGadget    (4, 10, 100, 250, 20, "TrackBar Ticks", #PB_Text_Center)
    TrackBarGadget(1, 10, 120, 250, 20, 0, 5, #PB_TrackBar_Ticks)
    SetGadgetState(1, 2)

    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Jetzt will ich aber den einzelnen Ticks Werte zuweisen und das er diese auch erkennt bei welchem Wert er in der TrackBar gerade ist und diesen Wert dann einer Variable zuweist.
Wie stelle ich das an?

mit GetGadgetAttribute?

Grüße NeoRon

Codetags hinzu
-- Andesdaf
The World is Cyber
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: TrackBarGadget

Beitrag von ts-soft »

Ich weiß jetzt nicht, ob Du es so meinst, aber kannst ja mal gucken:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 320, 200, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  TextGadget (0, 10, 100, 250, 20, "", #PB_Text_Center)
  TrackBarGadget(1, 10, 120, 250, 20, 0, 5, #PB_TrackBar_Ticks)
  SetGadgetState(1, 2)
  SetGadgetText(0, "Trackbar Ticks: " + GetGadgetState(1))
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      
      Case #PB_Event_Gadget
        If EventGadget() = 1
          SetGadgetText(0, "Trackbar Ticks: " + GetGadgetState(1))
        EndIf
    EndSelect
  ForEver
EndIf
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: TrackBarGadget

Beitrag von Andesdaf »

Nativ von PB aus geht das wohl nicht, aber folgender Code liefert dir
die Position des Schiebers zurück

Code: Alles auswählen

If OpenWindow(0, 0, 0, 320, 200, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    TextGadget    (4, 10, 100, 250, 20, "TrackBar Ticks", #PB_Text_Center)
    TrackBarGadget(1, 10, 120, 250, 20, 0, 5, #PB_TrackBar_Ticks)
    SetGadgetState(1, 2)

    Repeat
      iEvent = WaitWindowEvent()
      
      Select iEvent
        
        Case #PB_Event_Gadget
          Select EventGadget()
            
            Case 1
              Debug "Die Trackbar befindet sich an Position " + Str(GetGadgetState(1)) + "."
          
          EndSelect
      
      EndSelect
    
    Until iEvent = #PB_Event_CloseWindow
  EndIf
Win11 x64 | PB 6.20
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: TrackBarGadget

Beitrag von bobobo »

ich auch mal

Code: Alles auswählen

If OpenWindow(0, 0, 0, 320, 200, "TrackBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TextGadget (0, 30, 100, 250, 20, "", #PB_Text_Center)
  zink=20
  TrackBarGadget(1, 10, 120, 250, 20, 0, zink, #PB_TrackBar_Ticks)
  TrackBarGadget(2, 5, 5, 20, 180, 0,zink, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
  TrackBarGadget(3, 10, 10, 250, 20, 0, zink, #PB_TrackBar_Ticks)
  TrackBarGadget(4, 300, 5, 20, 180, 0,zink, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical)
  SetGadgetText(0, "Trackbar Ticks: " + GetGadgetState(1))
  Repeat
    p+zonk
    If p>=zink
      zonk=-1
    ElseIf p<1
      zonk=1
    EndIf
    SetGadgetState(1,p): SetGadgetState(2,p)
    SetGadgetState(3,zink-p): SetGadgetState(4,zink-p)
    DieVariable=GetGadgetState(1)
    SetGadgetText(0, "Trackbar Ticks: " + DieVariable)
    SetWindowTitle(0,"Der inhalt der Variablen ist jetzt "+Str(DieVariable))
    Select WaitWindowEvent(25)
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        If EventGadget() = 1
          SetGadgetText(0, "Trackbar Ticks: " + GetGadgetState(1))
        EndIf
    EndSelect
  ForEver
EndIf
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
NeoRon
Beiträge: 67
Registriert: 22.03.2013 18:56

Re: TrackBarGadget

Beitrag von NeoRon »

Vielen Dank euch für die schnellen Antworten. :)
The World is Cyber
Antworten