Du solltest deinen Quellcode mehr formatieren und dich auch dran halten, dann wird das debuggen leichter.
Außerdem ist es sinnvoll Zeiger mit einem P zu benennen (also P_Zeiger anstatt t_Zeiger).
So und nun genug Oberlehrerisch
Du rufst
immer
Delphi-Quellcode:
akt^.inhalt:='ein listen Element';
akt^.Position:=2;
auf, egal ob schon ein Kopf da ist oder nicht.
Kann sein das das der Fehler ist.
Ich würde das so machen:
Delphi-Quellcode:
procedure TForm1.btnNeuClick(Sender: TObject);
var
PNeu : P_Zeiger;
PDummy: P_Zeiger;
begin
New(PNeu);
if (Kopf = NIL) then
begin
PNeu^.Next := NIL;
PNeu^.inhalt := 'Das ist das erste Leisenelement';
PNeu^.Position := 1;
Kopf := PNeu;
Aktuell := PNeu;
end else begin
PNeu^.next := Aktuell^.next;
PNeu^.inhalt := 'ein listen Element';
PNeu^.Position := Succ(Aktuell^.Position);
Aktuell^.Next := PNeu;
PDummy := PNeu;
while PDummy^.next <> nil do
begin
PDummy := PDummy^.next;
Inc(PDummy^.Position);
end;
end;
if (PNeu^.next = nil) then
Ende := PNeu;
p_Ausgabe_Kopf(kopf^);
p_Ausgabe_Aktuell(Aktuell^);
p_Ausgabe_Ende(Ende^);
end;