Da editieren ja jetzt nicht mehr geht, hier nochmal kurz eine Korrektur, da die oben von mir beschriebene Lösung so nicht funtkioniert!
Mein Hauptdenkfehler lag dabei, das der Befehl "Scroll" keine Positionsangabe erlaubt sondern nur die Angabe um wieviel sich die Scollbalken in welche Richtung (+/-) verschieben sollen.
Also so funktioniert es jetzt bei mir:
Delphi-Quellcode:
for i := 0 to listview1.Items.Count -1 do
if listview1.Items[i].SubItems[1] = uhrzeit then // um einen Eintrag mit einer bestimmten Uhrzeit zu markieren/zentrieren
begin
listview1.SetFocus;
listview1.ItemIndex := i;
DisplayRec := listview1.Items[i].DisplayRect(drBounds);
zh := DisplayRec.Bottom - DisplayRec.Top; // Zeilen-Höhe
pos := listview1.TopItem.Index * zh; // Pos. des 1. sichtbaren Eintrags
pos2 := i * zh; // Pos. des akt. Eintrags
pos3 := pos2 - Round(listview1.ClientHeight/3); // neue Pos.
listview1.Scroll(0,pos3-pos); // an neue Pos. verschieben
break;
end;