Auch in der dort verwendeten Form funktioniert das nicht...
Ich habe nochmal einen neuen Zeiger Temp_z als Zwischenschritt erstellt.
Das läuft aber immer noch nicht... Bitte hilf mir
Delphi-Quellcode:
procedure TForm1.ButtonEntfernenClick(Sender: TObject);
//Button entfernt markierte Einträge aus der Liste
var ii, zaehler: integer;
letzter : integer;
Temp_z: Zeiger;
begin
if ListBoxAnzeige.Count<>0
then
begin
z:=Wurzel;
zaehler:=0;
while z<>
nil do
begin //Schleife, die Änderung in die Zeigerstruktur übernimmt
if ListBoxAnzeige.Selected[zaehler]
then
begin
Temp_z:=z^.naechster;
z^.naechster:=z^.naechster.naechster;
Dispose(Temp_z);
end;
z:= z^.naechster;
inc(Zaehler);
end;
ButtonAnzeigenClick(Sender);
//Neue Liste anzeigen
letzter:=ii;
if ListBoxAnzeige.Count<=letzter
then dec(letzter);
//Eintrag an der Stelle der letzten Löschung wird markiert
ListBoxAnzeige.Selected[letzter]:=true;
end;
end;