Seite 1 von 1
Event für ScrollAreaGadget() ??
Verfasst: 18.10.2004 22:15
von Falko
Kann man mit Event über Case irgendwie in der Repeat/Until-Schleife
das ScrollAreaGadget() abfragen, wenn man es anklickt oder verstellt?
Habe leider nichts passendes in PB_Event gefunden. Oder wie kann man
das irgendwie bewerkstelligen? Wäre sehr nett, wenn mir da jemand
weiterhelfen könnte.
Gruß Falko
Verfasst: 18.10.2004 22:27
von Franky
Das kannst du mit einem Callback in etwa so:
Code: Alles auswählen
Case WindowID(#window_scroll)
Select message
Case #WM_VSCROLL
If scrollmaxy=>1
If lParam=#Null
wLow=PeekW(@wParam)
wHi=PeekW(@wParam+2)
Select wLow
Case #SB_LEFT : vert = 0 : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length
Case #SB_RIGHT : vert = scrollmaxy : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length
Case #SB_PAGELEFT : If vert>0 : vert =vert-scrollstepbigvert(0) : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length : EndIf
Case #SB_PAGERIGHT : If vert<scrollmaxy : vert =vert+scrollstepbigvert(1) : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length : EndIf
Case #SB_LINELEFT : If vert>0 : vert =vert-1 : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length : EndIf
Case #SB_LINERIGHT : If vert<scrollmaxy : vert =vert+1 : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length : EndIf
Case #SB_THUMBPOSITION: vert = wHi : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length
Case #SB_THUMBTRACK : vert = wHi : repaint.l =1 : mousey=(areay-vert+vert2)*Length+Length
EndSelect
result=0
SetScrollPos_(WindowID(#window_scroll),#SB_VERT,vert,#True)
endselect
enselect
Is so nicht lauffähig, bin jetzt zu faul, das richtig zu machen, hab´s einfach aus meinem Code kopiert.
Aber du schaffst das schon, ich hab da volles vertrauen in dich
Einfach Windowid() durch gadgetid() ersetzen
Verfasst: 18.10.2004 23:06
von Falko
@Franky
Danke für deinen Tip und dein Vertrauen

.
Ich werde es morgen versuchen, mich mal mit der WindowsCallback-Funktion auseinander zu setzen.
Hab's bis jetzt immer vermieden. Aber anders wird's wohl doch nicht so
einfach sein das in einer schon bestehenden Repeat, Select, Endselect,
Until-Schleife einzubauen.
MfG Falko