Hallo,
Zitat:
wieso ändert sich das Datum in allen Zeilen ?
Wenn Du über alle (nicht fixe) Zeilen Deines StringGrids iterierst und den Zellenwert überschreibst, dann hat das so schon seine Richtigkeit - oder nicht?
Zitat:
Was ist hier noch falsch?
Leider kann ich anhand Deines Codefragments nicht so richtig erkennen was Du eigentlich erreichen möchtest; wenn Du lediglich eine weitere Zeile "als erste Zeile" im StringGrid hinzufügen möchtest, dann vielleicht so (aber da hätte Dir bauminas Link eigentlich schon weiterheften müssen):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
for i := StringGrid1.RowCount - 1 downto StringGrid1.FixedRows + 1 do
StringGrid1.Rows [i].Assign (StringGrid1.Rows [i - 1]);
StringGrid1.Rows [StringGrid1.FixedRows].Clear;
StringGrid1.Cells [3, StringGrid1.FixedRows] := FormatDateTime ('hh:nn:ss', Now)
end;
StringGrid1.RowCount := StringGrid1.RowCount + 1;
"Hängt" eine neu (leere) Zeile am Ende des StringGrids ein - mehr nicht. Es werden keine Zelleninhalte verschoben oder ähnliches. Mit:
Delphi-Quellcode:
for i := StringGrid1.RowCount - 1 downto StringGrid1.FixedRows + 1 do
StringGrid1.Rows [i].Assign (StringGrid1.Rows [i - 1]);
"Schieben" wir nun die Inhalte der entsprechenden Zeilen nach unten. Ein:
StringGrid1.Rows [StringGrid1.FixedRows].Clear;
stellt sicher, dass die Spalten der ersten Zeilen allesamt "leer" sind. Und: Mit:
StringGrid1.Cells [3, StringGrid1.FixedRows] := FormatDateTime ('hh:nn:ss', Now)
füllen wir die entsprechende Zelle mit dem gewüschten Wert.
Gruß