E2032 La variable de contrôle de boucle FOR doit être de type ordinal (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

La variable de contrôle d'une boucle for doit être de type Boolean, Char, WideChar, Integer, énuméré ou intervalle.



program Produce;
var
  x: Real;
begin (*Tracer sans vague*)
  for x := 0 to 2*pi/0.2 do                            (*<-- Message d'erreur ici*)
    Writeln( '*': Round((Sin(x*0.2) + 1)*20) + 1 );
end.

L'exemple utilise une variable de type Real comme variable de contrôle de la boucle for, ce qui est incorrect.



program Solve;
var
  x: Integer;
begin (*Tracer sans vague*)
  for x := 0 to Round(2*pi/0.2) do
    Writeln( '*': Round((Sin(x*0.2) + 1)*20) + 1 );
end.

A la place, utilisez le type ordinal Integer.

Vous risquez de voir cette erreur si une boucle FOR utilise une variable de contrôle Int64 ou Variant. Cela provient d'une limite du compilateur que vous pouvez résoudre en remplaçant la boucle FOR par une boucle WHILE.