Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Wie kann man richtig scrollen?

  Alt 23. Nov 2009, 14:48
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat