Überleg einmal, was passiert, wenn es genau ein Listenelement gibt.
Dein Developerbyindex wird genau einmal mit dem Parameter index=1 aufgerufen.
if index <= DevelopersCount liefert true
for i := 0 to index-1 do -> from 0 to 0, schleife wird genau einmal durchlaufen
current := current^.Next; -> first^.next = nil, weil es ja nur ein Listenelement gibt.
current^.content = nil^.content =
exception.
Oh, das habe ich ja gar nicht gesehen.
Delphi-Quellcode:
function getDeveloperByIndex(index: Cardinal): TDeveloper;
var
temp : TDeveloper;
i: Integer;
begin
current := first;
if (index <= DevelopersCount) and (DevelopersCount > 1) then
for i := 1 to index-1 do
current := current^.Next;
getDeveloperByIndex := current^.content;
end;
Sollte dann ja die richtige Variante sein.
Nur tritt der von mir beschriebene Fehler immernoch auf...