Einzelnen Beitrag anzeigen

Kill0r

Registriert seit: 5. Jun 2005
Ort: Zürich
50 Beiträge
 
Delphi 2010 Professional
 
#1

TListBox: Löschen von markierten Elementen

  Alt 2. Apr 2006, 00:50
Hi!
Ich habe mal wieder ein Problem.
Ich denke es ist eher ein Denkfehler von mir ^^
Also kommen wir zur Sache:
Ich habe eine TListBox in der ich mehrere Elemente, welche markiert sind, löschen möchte.
Leider funktioniert das nicht wirklich, das heisst es gibt eine Exception mit einem EListError der lautet: "Listenindex überschreitet das Maximum (3)"
Ich versuche das Löschen über folgenden Code:
Delphi-Quellcode:
procedure TfrmMain.btnDeleteClick(Sender: TObject);
var
  index: integer;
begin
  for index := 0 to listSource.Count-1 do
  begin
    if listSource.Selected[index] then
    begin
      DeleteFromList(index);
    end;
  end;
end;
Und hier der Quellcode von der Prozedur "DeleteFromList":
Delphi-Quellcode:
procedure DeleteFromList(id: integer);
var
  pic: integer;
begin
  if not (id = -1) then
  begin
    for pic := id to frmMain.listSource.Count-2 do
    begin
      Image[pic] := Image[pic+1];
    end;
    frmMain.listsource.Items.Delete(id);
    SetLength(Image,frmMain.listsource.Count);
  end;
  if frmMain.listsource.Items.Count = 0 then
  begin
    frmMain.btnDelete.Enabled := false;
  end;
end;
Ich hoffe auf eure Hilfe, denn mein Kopf raucht so langsam

Tschüssi
Kill0r
  Mit Zitat antworten Zitat