Einzelnen Beitrag anzeigen

lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#1

AccessViolation mit Checkbox aber warum?

  Alt 9. Dez 2005, 11:06
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 - Kidsthen
          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.
  Mit Zitat antworten Zitat