In ScrollAreaGadget() zu Position 0,0 springen
In ScrollAreaGadget() zu Position 0,0 springen
Geht das? Finde bei den Gadgets nichts dazu... bleibt wohl nur WinAPI übrig, falls überhaupt? Oder das ScrollAreaGadget einfach nochmal neu zeichnen?
Vielleicht hilft dir das hier weiter:
Sieht dann so in PB aus:
Wenn die Konstante #true nicht bekannt ist nimm dafür einfach den Wert 1.
so lässt es sich normalerweise bei Fenstern anwenden, die eine Scrollleiste haben. Wie das mit dem ScrollareaGagdet aussieht weiß ich nicht. Das ist ja ein zusammengesetztes Gadget aus mehreren Fenstern. Musst du ausprobieren.
Code: Alles auswählen
int SetScrollPos(
HWND hWnd, // handle of window with scroll bar
int nBar, // scroll bar flag
int nPos, // new position of scroll box
BOOL bRedraw // redraw flag
);
Code: Alles auswählen
SetScrollPos_(gadgetid(#gadget), #SB_VERT, 0, #true)
SetScrollPos_(gadgetid(#gadget), #SB_HORZ, 0, #true)
so lässt es sich normalerweise bei Fenstern anwenden, die eine Scrollleiste haben. Wie das mit dem ScrollareaGagdet aussieht weiß ich nicht. Das ist ja ein zusammengesetztes Gadget aus mehreren Fenstern. Musst du ausprobieren.

Geht leider nicht, schon probiert 
Hier die Lösung:
Aufruf zum Hochspringen (fette Stelle Gesamtlänge):

Hier die Lösung:
Fett markierte Stelle: Angabe des 1. Gadgets im ScrollAreaGadget.Structure PB_ScrollAreaData
ScrollAreaChild.l
ScrollStep.l
EndStructure
Procedure ScrollScrollArea(gadget, xoffset, yoffset, redraw.b)
hScrollArea = GadgetID(gadget)
*SAGdata.PB_ScrollAreaData = GetWindowLong_(hScrollArea, #GWL_USERDATA)
If *SAGdata
posX = GetScrollPos_(hScrollArea, #SB_HORZ)
posY = GetScrollPos_(hScrollArea, #SB_VERT)
SetScrollPos_(hScrollArea, #SB_HORZ, posX + xoffset, #True)
SetScrollPos_(hScrollArea, #SB_VERT, posY + yoffset, #True)
posX = GetScrollPos_(hScrollArea, #SB_HORZ)
posY = GetScrollPos_(hScrollArea, #SB_VERT)
GetWindowRect_(*SAGdata\ScrollAreaChild, wr.RECT)
MoveWindow_(*SAGdata\ScrollAreaChild, -posX, -posY, wr\Right - wr\Left, wr\Bottom - wr\Top, #True)
If redraw
UpdateWindow_(GadgetID(4646))
EndIf
EndIf
EndProcedure
Aufruf zum Hochspringen (fette Stelle Gesamtlänge):
Aufruf zum Runterspringen (fette Stelle Gesamtlänge):ScrollScrollArea(#GadgetID,0,-27640,true)
ScrollScrollArea(#GadgetID,0,27640,true)