Noch einmal: Der Index läuft von 0 bis count-1 !
Du prüfst jetzt, ob index <= Count ist. Wenn Index = Count ist, dann ist Index um 1 zu gross.
Zitat:
In einer anderen
Unit lasse ich eine for-Schleife von 1 - developersCount durchlaufen,
Dann halt so.
Delphi-Quellcode:
function getDeveloperByIndex(index: Cardinal): TDeveloper;
var
temp : TDeveloper;
i: Integer;
begin
current := first;
if index <= DevelopersCount then
for i := 0 to index-1 do
current := current^.Next;
getDeveloperByIndex := current^.content;
end;
Die Funktion liefert jetzt doch garantiert den developer an [index]. Stelle in der Liste.
Jetzt habe ich noch
Delphi-Quellcode:
procedure TFrmManageDevelopers.refreshDevelopers;
var
I : byte;
begin
LstBxDevelopers.Clear;
for I := 1 to developersCount do
LstBxDevelopers.Items.Append(developerToStr(getDeveloperByIndex(I)));
end;
Ich sehe da kein Problem.
Und die Fehlermeldung rührt ja immernoch von einem Lesefehler her.
Ich würde nur gern wissen, wieso.