Code: Alles auswählen
Define max.i=10
Define Wert.i=0
Dim BtTxt.s(1)
BtTxt(0)="Träge"
BtTxt(1)="Flink"
OpenWindow(1, 10,10,400,200,"")
CreateStatusBar(1,WindowID(1))
AddStatusBarField((400-128)/2-40)
AddStatusBarField(40)
AddStatusBarField(128)
AddStatusBarField(40)
StatusBarProgress(1,2, 0, #PB_StatusBar_BorderLess, 0,10)
TrackBarGadget(1, 10,10,380,20, max,255)
TrackBarGadget(2, 10,50,380,20, 0, max)
StatusBarText(1, 1, Str(GetGadgetState(2)))
StatusBarText(1, 3, Str(GetGadgetState(1)))
ButtonGadget(4, (400-40)/2, 90, 40, 20, BtTxt(0), #PB_Button_Toggle)
ProgressBarGadget(3, (400-128)/2, 140, 128, 18, 0, max,#PB_ProgressBar_Smooth)
Procedure SetProgressBarStateFast(Gadget, State)
MaxState = GetGadgetAttribute(Gadget, #PB_ProgressBar_Maximum)
If State < MaxState
SetGadgetState(Gadget, State + 1)
SetGadgetState(Gadget, State)
Else
SetGadgetAttribute(Gadget, #PB_ProgressBar_Maximum, MaxState + 1)
SetGadgetState(Gadget, MaxState + 1)
SetGadgetAttribute(Gadget, #PB_ProgressBar_Maximum, MaxState)
SetGadgetState(Gadget, MaxState )
EndIf
EndProcedure
Procedure SetStatusBarProgressStateFast(StatusBar, Field, State, Style = 0, MinState = 0, MaxState = 100)
If State < MaxState
StatusBarProgress(StatusBar, Field, State + 1, Style, MinState, MaxState)
StatusBarProgress(StatusBar, Field, State, Style, MinState, MaxState)
Else
StatusBarProgress(StatusBar, Field, MaxState + 1, Style, MinState, MaxState + 1)
StatusBarProgress(StatusBar, Field, MaxState, Style, MinState, MaxState)
EndIf
EndProcedure
Repeat
Event=WaitWindowEvent()
EventGadget =EventGadget()
Select Event
Case #PB_Event_Gadget
Select EventGadget
Case 1
max=GetGadgetState(1)
SetGadgetAttribute(2,#PB_TrackBar_Maximum,max)
SetGadgetAttribute(3,#PB_ProgressBar_Maximum,max)
StatusBarProgress(1,2,GetGadgetState(2),0, 0,max)
StatusBarText(1, 1, Str(GetGadgetState(2)))
StatusBarText(1, 3, Str(max))
Case 2
Wert=GetGadgetState(2)
If GetGadgetState(4)
SetProgressBarStateFast(3,Wert)
SetStatusBarProgressStateFast(1,2,Wert, 0, 0, max)
Else
SetGadgetState(3,Wert)
StatusBarProgress(1,2,Wert)
EndIf
StatusBarText(1, 1, Str(Wert))
Case 4
SetGadgetText(4, BtTxt(GetGadgetState(4)))
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow
Danke nochmals für Deinen (und Christian+') "workaround". Das hat
mir sehr geholfen.