Dieser Versuch ist leider auch kläglich gescheitert:
Delphi-Quellcode:
procedure TForm1.ButtonEntfernenClick(Sender: TObject);
//Button entfernt markierte Einträge aus der Liste
var ii: integer;
letzter : integer;
begin
if ListBoxAnzeige.Count<>0
then
begin
with ListBoxAnzeige
do
begin
for ii := -1 + Items.Count
downto 0
do
if Selected[ii]
then
begin
z:=Wurzel;
while z<>
nil do //Schleife, die Änderung in die Zeigerstruktur übernimmt
begin
z:=z^.naechster;
if ListBoxAnzeige.Items[ii]=z^.Inhalt
then
begin
z^.naechster:=z^.naechster.naechster;
Dispose(z);
end;
end;
Items.Delete(ii);
letzter:=ii;
end;
if ListBoxAnzeige.Count<=letzter
then dec(letzter);
//Eintrag an der Stelle der letzten Löschung wird markiert
ListBoxAnzeige.Selected[letzter]:=true;
end;
end;
end;