Da fehlt der Else-Teil:
Delphi-Quellcode:
if InRange(FSelectedProgram, 1, FFormatCount) then
begin
Result := FProgram[FSelectedProgram - 1].Step[index];
end
else
;// der Else-Teil fehlt - Result ist undefiniert
end;
Wenn die Bedingung nicht zutrifft, dann steht im Rückgabewert Result mit viel Glück irgendwas eigentlich aber nur Müll.
Also genau das was du beschreibst.
Wenn es geht dann leg in den Else Zweig mal ein ShowMessage( 'nix im Result' )
Dann siehst du, ob der Datenmüll von da kommt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)