ich habe ein Problem mit meiner StringGrid.
Ich habe ein Edit und ein Memo. (Später sollen auch weitere Edits im Programm vorhanden sein). Jetzt aber nur das Minimale.

Ich möchte die Einträge des Edits und des Memos in mein StringGrid rein bringen. Das macht es auch.
Ich speichere es in eine Datei. Das macht es.
Wenn ich in meinem Memo mehr als eine Zeile habe, so wird es auch in mein StringGrid gespeichert.
Solange ich das Programm nicht schließe und in meine erste Spalte im StringGrid klicke, kann ich meine Daten zurück holen und anzeigen lassen.
Doch jetzt kommt mein Problem:
Wenn ich das Programm schließe und meine Daten lade, so werden die Einträge meiner Memo in mehrere Zeilen des StringGrid aufgeteilt.
Sie werden gesplittet.
Was mache ich falsch?
anbei der Code:
// ###################################
// # SaveStringGrid2File speichern #
// ###################################
// Anfang
procedure SaveStringGridToFile(StringGrid: TStringGrid; const FileName: String);
var
F: TStringList;
i: Integer;
begin
F := TStringList.Create;
try
F.Add(IntToStr(StringGrid.RowCount));
F.Add(IntToStr(StringGrid.ColCount));
for i := 0 to (StringGrid.RowCount - 1) do
F.Add(StringGrid.Rows.CommaText);
F.SaveToFile(FileName);
finally
F.Free;
end;
end;
// ###################################
// # SaveStringGrid2File speichern #
// ###################################
// Ende
procedure TForm1.Button2Click(Sender: TObject);
begin
SaveStringGridToFile(StringGrid1, '.\daten.dat');
end;
// ###############################
// # SaveStringGrid2File laden #
// ###############################
// Anfang
procedure LoadStringGridFromFile(StringGrid: TStringGrid; const FileName: String);
var
F: TStringList;
i: Integer;
begin
F := TStringList.Create;
try
F.LoadFromFile(FileName);
StringGrid.RowCount := StrToInt(F[0]);
StringGrid.ColCount := StrToInt(F[1]);
for i := 0 to (StringGrid.RowCount - 1) do
StringGrid.Rows.CommaText := F[i + 2];
finally
F.Free;
end;
end;
// ###############################
// # SaveStringGrid2File laden #
// ###############################
// Ende
procedure TForm1.Button3Click(Sender: TObject);
begin
if FileExists('.\daten.dat') then LoadStringGridFromFile(StringGrid1, '.\daten.dat');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear;
Memo1.Clear;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cols[0].Add(Trim(Edit1.Text)).Size;
StringGrid1.Cols[1].Add(Trim(Memo1.Lines.Text));
Edit1.Clear;
Memo1.Clear;
Edit1.SetFocus;
end;
procedure TForm1.StringGrid1Click(Sender: TObject);
var
s: string;
begin
// Text der Zelle holen
s := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];
if Length(s) > 0 then //Länge des Text übeprüfen
begin
Edit1.Text:= s; // Text ausgeben
Memo1.Text:= StringGrid1.Cells[StringGrid1.Col+1, StringGrid1.Row];
end;
end;