jjturbo - Di 16.03.10 09:05
Titel: for-Schleifenvariable enthält ungültigen Wert
Moin Forum,
ich habe hier ein seltsames Problem:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| type TArrayFuerTabelle = Array[0..8] of String;
var ArrayFuerTabelle :TArrayFuerTabelle; MyStr :String;
function MyFunction(IrgendEinString:String):TArrayFuerTabelle; var i :Integer; begin
for i := 0 to Length(Result)-1 do Result[i] := '';
end;
procedure blablabla; begin ArrayFuerTabelle := MyFunction(MyStr); end; |
Ich habe das Problem, das obiger Code bei einem Kunden dazu führt, daß sich das Programm komplett wegkillt, ohne irgendeine Fehlermeldung.
Wenn ich mir das jetzt mal auf meinem Rechner im Debugger ansehe, enthält die for-Schleifenvariable i einen Wert von 9!
(Haltepunkt auf do Result[i] := '';)
Hat jemand eine Idee?
jaenicke - Di 16.03.10 10:31
jjturbo hat folgendes geschrieben : |
Wenn ich mir das jetzt mal auf meinem Rechner im Debugger ansehe, enthält die for-Schleifenvariable i einen Wert von 9! |
Das ist normal, der Debugger bekommt von den Compileroptimierungen nix mit. Wenn du also die realen Werte sehen willst, musst du vor dem Kompilieren in den Projektoptionen unter Compiler die Optimierung ausschalten.
Du wirst aber, wenn du die Werte per ShowMessage ausgibst oder so, sehen, dass diese schon den korrekten Wert haben. Nur der Debugger zeigt diese falschen, sprich optimierten, Werte an.