Guten Tag Delphianer,
Ich habe einige Checkboxen womit ich verschiedene Kategorieen (TV - Kids, DVD-r unsw) einer Listview anzeichen und ausblenden moechte.
Jetzt mache ich das mittels StringListen, bei einem Click auf die Checkbox wird geprueft ob Sie markiert ist oder nicht und der Entsprechende Code wird dan ausgefuehrt.
Standard sind die Checkboxen markiert(Checked := true).
Hier mein Code von einer Checkbox:
Delphi-Quellcode:
procedure THaupt.KidsClick(Sender: TObject);
var
z, i : Integer;
slLines, slFields, FieldList : TStringList;
begin
if Kids.Checked = false then
begin
slFields := TStringList.Create;
slLines := TStringList.Create;
for z := ListView.Items.Count-1 downto 0 do
if ListView.Items[z].SubItems[1] = 'TV - Kids' then
begin
slFields.Assign(Listview.Items[z].SubItems);
slFields.Insert(0, Listview.Items[z].Caption);
slLines.Add(slFields.CommaText);
ListView.Items[z].Delete;
end;
Listview.Invalidate;
showmessage(slLines.CommaText); //<-- Items in StringListe werden korrekt angezeigt//
end
else
begin
FieldList := TStringList.Create;
for i := 0 to Pred(slLines.Count) do //<-- Ab hier gibt es eine AccessViolation//
begin
FieldList.CommaText := slLines[i];
with ListView.Items.Add do
begin
Caption := FieldList[0];
FieldList.Delete(0);
SubItems.Assign(FieldList);
end;
end;
slLines.Free;
slFields.Free;
FieldList.Free;
end;
end;
Wenn die Checkbox demarkiert ist und ich wieder die Checkbox clicke gibt es eine AccesViolation ab der Zeile wie oben beschrieben im Code.
Meine Frage lautet wie kann das sein?
Vielen Dank im voraus.
MFG Lucius.