Hatte mich unter nem Freund einglockt...also das da oben ist mein Problem
Zunächst JA es war gewollt dies Rekursiv aufzurfen.
Und TEMP ist im Hauptprogramm (nahezu zu beginn) deklariert als TEMP:=KOPF. Damit wollte ich verhindern, dass ich meinen Kopf klaue und dadurch meine ganze Liste verschwindet...
Der andere Vorschlag habe ich ja in dem Auskommentierten Teil verwirklicht. Habe es da ausprobiert, wenn ich nicht rekursiv mache sondern NUR beim klicken auf WEITER der zeiger.next genommen wird. Aber das sind beides Feinheiten.
Also das es gibt auch den selben Fehler wenn ich das ganze so gestalte:
Delphi-Quellcode:
PROCEDURE ausgabeListe(L:Listenzeiger);
BEGIN
BEGIN
showmessage(l^.genre);
ausgabeformular.titelaus.Items.add(l^.Titel);
ausgabeformular.genreaus.Items.add(l^.genre);
ausgabeformular.jahraus.Items.add(l^.jahr);
ausgabeformular.regiseuraus.Items.add(l^.Regisseur);
ausgabeformular.schauspieleraus.Items.add(l^.schauspieler);
END;
END;
und
Delphi-Quellcode:
procedure TAusgabeformular.WeiterClick(Sender: TObject);
begin
titelaus.Clear;
genreaus.Clear;
jahraus.clear;
regiseuraus.clear;
schauspieleraus.clear;
temp:=temp^.Next;
ausgabeliste(temp);
end;
end.
Mein Problem ist der EAccessViolation Fehler. Und dieser tritt leider bei beiden auf...