W1037 FOR-Schleifenvariable %s' kann nach Durchlauf undefiniert sein (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Diese Warnung wird angezeigt, wenn die Steuervariable einer for-Schleife nach der Schleife verwendet wird.
Sie können sich nur auf den letzten Wert eines for-Schleifenzählers verlassen, wenn die Schleife mit einer goto- oder exit-Anweisung verlassen wird.
Der Grund für diese Einschränkung ist, dass der Compiler dadurch sehr effizienten Code für die for-Schleife erzeugen kann.
program Produce;
(*$WARNINGS ON*)
function Test1: Integer;
var
I: Byte;
begin
Result := 0;
for I := 0 to 255 do
Inc(Result);
WriteLn(I); // undefined
end;
begin
Test1;
end.
In diesem Beispiel wird die Variable des Steuerelements implizit nach der Schleife verwendet, damit sie undefiniert ist, wenn der Compiler eine Warnung ausgibt.