Hallo zusammen.
Habe folgendes Problem: Ich habe eine "filmothek" geschrieben, die ihre Daten in einer Textdatei speichert und auch Laden kann. Klappt alles. Nur wenn ich die Sache Ausgeben lassen will, habe ich ein Problem. Die Idee ist, dass ich es Ausgeben lassen und durch klicke auf ein OnClick der nächste Element angezeigt wird (Also der Zeiger ein Element weiter gesetzt wird). Die "showmessage " dienen nur zur überprüfung, ob der Zeiger wirklich weiter geht. Sobald ich nun die Elemente in ein Form ausgeben will (was bei der ersten ausgabe klappt!) kommt folgender Fehler:
Im Projekt HauptprogrammProjekt.exe ist eine
exception der klasse EAccessViolation aufgetreten. Meldung:'Zugriffsverletzung bei Adresse 0045BAB3 im modul 'HauptprogrammProjekt.exe'. Lesen von Adresse 00000004'. Prozess wurde angehalten. Mit einzelnen Anweisungen oder Start fortsetzen.
Könnt ihr mir helfen den Fehler zu finden? Denn offenbar funktioniert es ja, den nächsten Datensatz anzuzeigen (über showmessage) aber nicht in das Formular zu geben.
Anbei Quelltext.
KOPF, TEMP sind Global!
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);
IF (hilf AND (l<>NIL)) THEN
BEGIN
l:=l^.Next;
ausgabeListe(l); f
hilf:=false;
END
ELSE l:=NIL;
END;
END;
Delphi-Quellcode:
procedure TAusgabeformular.WeiterClick(Sender: TObject);
begin
titelaus.Clear;
genreaus.Clear;
jahraus.clear;
regiseuraus.clear;
schauspieleraus.clear;
//WHILE Temp<>NIL DO BEGIN
hilf:=TRUE;
// temp:=temp^.Next;
// showmessage(temp^.titel);
ausgabeliste(temp);
end;
//end;
end.
Ich hatte auch die Idee es in dem letzten "weiter click" schon weiterzusetzten (Auskommentiert Temp:=temp^.next)
Vielen Dank für eure Hilfe!