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 :wink:

Einfach Windowid() durch gadgetid() ersetzen

Verfasst: 18.10.2004 23:06
von Falko
@Franky
Danke für deinen Tip und dein Vertrauen :wink: .
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