Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

TListBox, TCheckListBox scrollen

  Alt 9. Sep 2009, 00:53
Hallo,

ich benutze den hier im Forum zu findenden Code zum Verschieben von Einträgen in einer TCheckListBox. Das funktioniert soweit auch ganz gut.

Das Problem ist jedoch, dass mir das Scrollen überhaupt nicht gefällt:
Je größer das Fenster, desto besser klappt das Scrollen. Je kleiner (in meinem Fall 4 Zeilen) klappt es kaum. Das äußert sich daran, dass man beim Ziehen eines Eintrages an das Ende der Liste im unteren Bereich die Maus immer hoch und runter "rütteln" muss - nach oben dasselbe Spiel. Bei meinen 4 Zeilen klappt es manchmal garnicht.

Wie bekomme ich es hin, dass das Scrollen (fließend) klappt?

Ich habe bereits versucht, über die bei OnDragOver() mit übergebenen X- und Y-Positionen das Scrollen laufen zu lassen. Etwa so:
Delphi-Quellcode:
Procedure TForm1.DragOver();
...
   If Y<CheckListBox1.ItemHeight Then
      CheckListBox1.ScrollBy(0,-16);
   If Y>(CheckListBox1.Height-CheckListBox1.ItemHeight) Then
      CheckListBox1.ScrollBy(0,16);
...
Abgesehen davon, dass das unschöne Verzerrungen in der Box liefert, klappt das Scrollen nicht.

Gruß und Dank, Alex
Alex Winzer
  Mit Zitat antworten Zitat