[D3]: letzte Zeile im StringGrid anzeigen?

Liebe Delphi- Experten,

ich erzeuge zur Laufzeit eine unbestimmte Menge von StringGrids, die jeweils TabSheets als Parent haben. In die Grids werden automatisch Daten eingelesen. Nun soll, wenn das Ende des Sheets erreicht ist, immer jeweils die letzte, also aktuellste Zeile angezeigt werden. Hat die Klasse TStringGrid eine Eigenschaft ähnlich wie Autoscroll oder wie könnte man dieses Problem lösen? Ich könnte mir vorstellen, dass dies über die Eigenschaft Rows funktioniert, nur WIE?

Hoffe sehr, dass mir jemand weiterhelfen kann.
Schon mal besten Dank.
Bye, Susan.

Hi Susan,

nicht mit der Eigenschaft Rows, sondern mit der Eigenschaft TopRows (die Du nicht im Objektinspektor findest, weil sie nur zur Laufzeit zur Verfügung steht) kannst Du Dein Problem auf einfachste Weise lösen:

StringGrid1.TopRow := StringGrid1.RowCount-4

Mit der „–4“ erreichst Du, daß Du nicht nur die allerletzte Zeile ganz oben im Stringgrid siehst, sondern außer dieser auch noch die drei vorangehenden Zeilen.

Mit freundlichem Gruß
Martin

Es funktioniert. Danke vielmals!!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Toprow hat aber (zumindest bei meinem Delphi 3.0) einen kleinen Bug: Wenn die Tabelle so wenig Zeilen hat, dass Sie ohne Bildlaufleiste angezeigt werden kann und Du dann z.B.
tabelle.TopRow := 4;
verwendest sind die Zeilen 1-3 nicht mehr auffindbar, weil nämlich durch TopRow keine Bildlaufleiste hinzugefügt wird, obwohl diese nötig wäre. Nur noch mit den Pfeiltasten oder Bild auf/ab findet man diese Zeilen.

Wollte ich nur anmerken :wink:

Timo