Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: ListView Scrollen per Code

  Alt 21. Jan 2018, 22:22
Ich vermute mal, der ListView steht im ViewStyle vsReport?

Dieser Code scrollt den aktuellen Eintrag ungefähr in die Mitte, so das überhaupt möglich ist.

Delphi-Quellcode:
var
  DI: Integer;
  DY: Integer;
  H: Integer;
  I: Integer;
  R0: TRect;
  R1: TRect;
begin
  if ListView1.Items.Count <= ListView1.VisibleRowCount then Exit;

  R0 := ListView1.Items[0].DisplayRect(drSelectBounds);
  R1 := ListView1.Items[1].DisplayRect(drSelectBounds);
  H := R1.Top - R0.Top; // Höhe eines Eintrags
  DI := (ListView1.VisibleRowCount + 1) div 2; // Anzahl der Items über dem aktuellen
  DY := H*(ListView1.ItemIndex - ListView1.TopItem.Index - DI); // zu scrollender Wert
  ListView1.Scroll(0, DY);
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat