Hallo zusammen,
ich habe mir einen Browser für Stringlisten gebastelt, der bis 32.000 Zeilen auch ganz brauchbar ist. (16-Bit Integer)
Da ich manchmal ein paar Zeilen mehr bewegen muß habe ich versucht mit GetScrollPos und GetScrollInfo höhere Werte für meine angezeigte Zeile(n) zu realisieren. In beiden Fällen funktioniert es nicht.
ScrollInfo liefert nur Nullen zurück(!?) und GetScrollPos die letzte Position vor dem Bewegen des Thumb.
Delphi-Quellcode:
case Message.ScrollCode
of
SB_LINEDOWN : Inc(NewTopLine);
SB_LINEUP :
Dec(NewTopLine);
SB_PAGEDOWN : Inc(NewTopLine, FVisibleLines - 1);
SB_PAGEUP :
Dec(NewTopLine, FVisibleLines - 1);
{SB_THUMBPOSITION, SB_THUMBTRACK: NewTopLine := Message.Pos;} { funktioniert nutr bis $7FFF }
//SB_THUMBPOSITION : NewTopLine := GetScrollPos(handle,SB_VERT)+1;
SB_THUMBPOSITION :
begin
fillchar(Scrollinfo,sizeof(scrollinfo),#0);
Scrollinfo.cbSize := SizeOf(ScrollInfo);
Scrollinfo.fMask := SIF_ALL;
GetScrollInfo(
Handle, SB_CTL, ScrollInfo);
NewTopLine := Scrollinfo.nTrackPos;
end;
end;
Kann mir da einer weiterhelfen?
Gruß
K-H