ich hab' mal wieder eine Frage, und zwar dreht sie sich heute um die Reaktion des ScrollBarGadgets. Ich habe dazu mal das beiliegende Beispiel vorbereitet.
Code: Alles auswählen
OpenWindow(0,0,0,200,200,"<--o--o-->",#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_Maximize|#PB_Window_SizeGadget)
CreateImage(1,640,480)
CreateGadgetList(WindowID(0))
ImageGadget(0,100,100,ImageWidth(1),ImageHeight(1),ImageID(1),#PB_Image_Border)
ScrollBarGadget(1,20,20,WindowWidth(0)-40,20,1,239,1)
ImageOutput(1)
Procedure Zeichnen(Amplitude)
StartDrawing(ImageOutput(1))
Box(0,0,639,479,$000000)
For x = 0 To 639
y = 240 - Amplitude * Sin(2 * 3.14159265 / 639 * x)
Plot(x,y,$FFFFFF)
Plot(x,240,$FFFFFF)
Next x
StopDrawing()
SetGadgetState(0,ImageID(1))
EndProcedure
Zeichnen(100)
SetGadgetState(1,100)
Repeat
event = WindowEvent()
Zeichnen(GetGadgetState(1))
If event = #PB_Event_Gadget
If EventGadget() = 1
Zeichnen(GetGadgetState(1))
EndIf
EndIf
Until event = #PB_Event_CloseWindow
End
Was mir aber an der Geschichte noch nicht so ganz gefällt, ist die Tatsache, dass sich Änderungen erst ergeben, sobald man die linke Maustaste über dem Gadget wieder losgelassen hat.
Ist es denn nicht mit einfachen Mitteln möglich, eine Änderung anzuzeigen, auch wenn der Balken noch geschoben wird???
Wenn man bei M$-Word den vertikalen Rollbalken in einem längeren Text verschiebt, dann kriegt man ja auch sofort den neuen Textausschnitt angezeigt, und nicht erst, wenn man die Maustaste über dem Rollbalken wieder loslässt.
Gruß, Jan