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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

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

Beitrag 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
Zuletzt geändert von Josef Sniatecki am 18.04.2011 11:39, insgesamt 1-mal geändert.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Re: ScrollBar erzeugt beim Scrollen kein Event

Beitrag 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.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

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

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten