Also nach Programmende kannst nix mehr machen. Aber BEIM Programmende. (Form1.OnClose)
Also das Memo alleine ist ja mit
Memo.Lines.SaveToFile() kein Problem. Oder?
Die ListView hat so viel ich weis keine SaveToFile-Methode.
Ausserdem ist es ja Hirarchisch, da es zu jedem Item SubItems geben kann (aber nicht muß)
Auf die schnelle, hier mal 2 Prozeduren die Dir den Inhalt der ListView speichern und laden:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var StringList : TStrings; i : Integer; begin StringList := TStringList.Create; For i := 0 to ListView1.Items.Count-1 do begin StringList.Add('!'+ListView1.Items[i].Caption); StringList.AddStrings(ListView1.Items[i].SubItems); end; StringList.SaveToFile('C:\ListView.txt'); StringList.Free; end;
procedure TForm1.FormActivate(Sender: TObject); var StringList : TStrings; i, item : Integer; begin IF NOT FileExists('C:\ListView.txt') then exit; StringList := TStringList.Create; item := -1; StringList.LoadFromFile('C:\ListView.txt'); For i := 0 to StringList.Count-1 do begin IF StringList[i][1] = '!' then begin Inc(item); ListView1.Items.Add; ListView1.Items[item].Caption := Copy(StringList[i],2,Length(StringList[i])); end else ListView1.Items[item].SubItems.Add(StringList[i]); end; StringList.Free; end; |
Nachteil: Ein SubItem darf nicht mit einem '!' beginnen. (Aber vielleicht fällt Dir was besseres als HauptItem-Kennzeichen ein.)
Wie ich Dich verstanden hab willst Du jetzt auch noch den Inhalt des Memos mit in die gleiche Datei packen. Sollte auch kein Problem sein.
Du mußt nur noch einen Trenner in die StringList einfügen und dahinter mit
StringList.AddStrings(Memo1.Lines) das Memo anhängen.
Wenn Du dann beim Einlesen über den Trenner stolperst weist Du, daß alles folgende in das Memo gehört.
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."