![]() |
neue Zeile im StringGrid -> Datum wird in allen Zeilen neu geschrieben :-(
hallo,
möchte gerne im StringGrid eine neue Zeile hinzufügen. Bin gerade schon am testen, komme leider nicht weiter!
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer; begin i := stringgrid1.RowCount; Stringgrid1.RowCount := i+1; StringGrid1.Cells[0,StringGrid1.RowCount-i]:= IntToStr(i); StringGrid1.Cells[1,StringGrid1.RowCount-i]:= '' + DateToStr(Date)+ ''; StringGrid1.Cells[2,StringGrid1.RowCount-i]:= '' + TimeToStr(Time)+ ''; end; |
AW: eine neue Zeile im StringGrid oben
|
AW: eine neue Zeile im StringGrid oben
hallo baumina,
wieso ändert sich das Datum in allen Zeilen ?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin i := StringGrid1.RowCount; Stringgrid1.RowCount := i+1; for i := 1 to StringGrid1.RowCount-1 do begin StringGrid1.Cells[0,StringGrid1.RowCount-i]:= IntToStr(i); StringGrid1.Cells[3,StringGrid1.RowCount-i]:= (FormatDateTime('hh:nn:ss',now)); end; end; Was ist hier noch falsch? |
AW: neue Zeile im StringGrid -> Datum wird in allen Zeilen neu geschrieben :-(
Hallo,
Zitat:
Zitat:
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;
Delphi-Quellcode:
"Hängt" eine neu (leere) Zeile am Ende des StringGrids ein - mehr nicht. Es werden keine Zelleninhalte verschoben oder ähnliches. Mit:
StringGrid1.RowCount := StringGrid1.RowCount + 1;
Delphi-Quellcode:
"Schieben" wir nun die Inhalte der entsprechenden Zeilen nach unten. Ein:
for i := StringGrid1.RowCount - 1 downto StringGrid1.FixedRows + 1 do
StringGrid1.Rows [i].Assign (StringGrid1.Rows [i - 1]);
Delphi-Quellcode:
stellt sicher, dass die Spalten der ersten Zeilen allesamt "leer" sind. Und: Mit:
StringGrid1.Rows [StringGrid1.FixedRows].Clear;
Delphi-Quellcode:
füllen wir die entsprechende Zelle mit dem gewüschten Wert.
StringGrid1.Cells [3, StringGrid1.FixedRows] := FormatDateTime ('hh:nn:ss', Now)
Gruß |
AW: neue Zeile im StringGrid -> Datum wird in allen Zeilen neu geschrieben :-(
Genau wegen diesem Rumgehampel sollte man die Controls auch nicht als Datenspeicher missbrauchen.
Trennt man das, dann wird diese Aufgabe zur Lachnummer:
Das ist dann KISS |
AW: neue Zeile im StringGrid -> Datum wird in allen Zeilen neu geschrieben :-(
In einem einfachen Testprojekt (für ein Anfänger-Tutorial) habe ich einen Record mit verschiedenen Feldern für Name, Adresse usw. Alle Manipulationen finden in diesem Record statt. Zur Anzeige in einem Stringgrid dient mir folgende Procedure:
Delphi-Quellcode:
Damit befolge ich das
Procedure TFormMain.Eintragen(Nummer: Integer);
begin IF Anzahl < Nummer THEN Exit; IF (StrGrid_Adressen.RowCount - 1) < Nummer THEN StrGrid_Adressen.RowCount := Nummer + 1; StrGrid_Adressen.Cells[0,Nummer] := IntToStr(Adressen[Nummer].Index); StrGrid_Adressen.Cells[1,Nummer] := Adressen[Nummer].Vorname; StrGrid_Adressen.Cells[2,Nummer] := Adressen[Nummer].Nachname; StrGrid_Adressen.Cells[3,Nummer] := Adressen[Nummer].Strasse; StrGrid_Adressen.Cells[4,Nummer] := Adressen[Nummer].PLZ; StrGrid_Adressen.Cells[5,Nummer] := Adressen[Nummer].Ort; StrGrid_Adressen.Cells[6,Nummer] := DateTimeToStr(Adressen[Nummer].GebDat); end; ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz