Seite 1 von 1

ScrollBar erzeugt beim Scrollen kein Event - [Gelöst]

Verfasst: 18.04.2011 11:27
von Josef Sniatecki
Hallo an alle,

ist jetzt schon lange her, dass ich mich hier mal wieder gemeldet habe. Zuerst möchte ich hier sagen, dass ich das CanvasGadget als eine Art "CustomGadget" echt gut finde und es deshalb für mehrere meiner Projekte verwende.

Nun wollte ich so etwas wie eine eigene Tabelle machen, die sich rauf- und runterscrollen lässt. Das Problem ist nur, dass ein ScrollBarGadget beim Scrollvorgang keine Events abwirft (ähnlich wie bei der Auswahl von Menü-Einträgen).

Hier die Demonstration:

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 200, 200, "Scroll Bar", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  ScrollBarGadget(0, 10, 10, 200 - 2*10, 20, 0, 100, 5)

Define Event.i, EventWindow.i, EventGadget.i
Define Times.i

Repeat
  Event       = WaitWindowEvent()
  EventWindow = EventWindow()
  EventGadget = EventGadget()
  
  If EventWindow = 0
    Debug Event
    If Times = 20
      ClearDebugOutput()
      Times = 0
    Else
      Times + 1
    EndIf
    
    If Event = #PB_Event_CloseWindow
      Break
    EndIf
  EndIf
ForEver

CloseWindow(0)
End
Mir wäre es jedoch viel lieber, wenn das Scrollen nicht die gesamte Schleife anhalten würde, damit ich schon während des Rauf- und Runterscrollens mein CanvasGadget, ferner die Tabelle, neu zeichnen kann.

In der Suche habe ich leider nur einen älteren Beitrag gefunden, der mir leider nicht weiterhilft.

Kennt ihr irgendeinen Trick, diese Blockade zu umgehen?

Gruß Josef

Re: ScrollBar erzeugt beim Scrollen kein Event

Verfasst: 18.04.2011 11:36
von Josef Sniatecki
Durch weiteres Herumsuchen hab ich jetzt auch einen Code von Kiffi gefunden. Anscheinend lassen sich in Windows einige Events nur durch ein zusätzlich festgelegtes Callback abfangen.

Für weitere Lösungsvorschläge wäre ich natürlich trotzdem dankbar, auch wenn sich mein Problem bereits gelöst hat.

Re: ScrollBar erzeugt beim Scrollen kein Event - [Gelöst]

Verfasst: 18.04.2011 11:43
von STARGÅTE
Ich habs bei meinen Gadgets auch nur so gelöst, wie du selbst schon geschrieben hast: Callback und von dort aus das neuzeichen anordnen.

Das Funktioniert ganz gut, zumal man ja das Scrollen eines eigenen Gadgets eh nicht in den Event-Block des nutzers einbauen will, sonden das eh "automatisch" gemacht werden soll.