Hallo,
mit den angehängten Proceduren speichere und lade ich den Inhalt einer ListView.
Das geht ja auch.
Mit den folgenden Codes speichere ich den Zustand der einzelnen Checkboxen der ListView.
CheckBoxen speichern:
Code:
//CheckBoxen
Anzahl := ListView_Dateien.Items.Count;
S := '';
for i := 0 to Anzahl - 1 do
begin
S := S + BoolToStr(ListView_Dateien.Items.Item[i].Checked) + Trennzeichen;
end;
WriteString('ListView', 'CheckBoxen', S);
CheckBoxen laden:
Code:
//CheckBoxen
S := ReadString('ListView', 'CheckBoxen', '');
Anzahl_Zeilen := ListView_Dateien.Items.Count;
Anzahl_Teiler := Length(S) - Length(StringReplace(S, Trennzeichen, '',
[rfReplaceAll])) div Length(Trennzeichen);
//Anzahl Zeilen prüfen
If Anzahl_Zeilen > Anzahl_Teiler then
Anzahl := Anzahl_Teiler
else
Anzahl := Anzahl_Zeilen;
Pos_Teiler := 1;
for i := 0 to Anzahl - 1 do
begin
ListView_Dateien.Items.Item[i].Checked := StrToBool(
copy(S, Pos_Teiler, PosEx(Trennzeichen, S, Pos_Teiler) - Pos_Teiler));
Pos_Teiler := PosEx(Trennzeichen, S, Pos_Teiler) + 1;
end;
Durch diese Lösung kann es vorkommen, dass beim Austausch der Datei in der die ListView gespeichert wurde, die Anzahl der "angeklickten" Checkboxen nicht zu der Anzahl der ListView-Zeilen zusammenpassen.
Jetzt (endlich) meine Frage:
Wie kann ich den Inhalt der ListView mit den Checkboxen (und deren Zustand) in einer Datei speichern bzw. laden?
mfg
Helmi