W1015 La variable de boucle FOR '%s' ne peut être passée comme paramètre var (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi) - Index
Cet avertissement est émis lorsque vous transmettez la variable de contrôle d'une boucle FOR comme paramètre variable. Il s'agit d'un avertissement car la procédure recevant la variable de contrôle peut la modifier, changeant ainsi la sémantique de la boucle FOR ayant émis l'appel.
program Produce; procedure p1(var x : Integer); begin end; procedure p0; var i: Integer; begin for i := 0 to 1000 do p1(i); end; begin end.
Dans cet exemple, la variable de contrôle de la boucle, i, est transmise à une procédure qui reçoit un paramètre var. C'est la principale cause de l'avertissement.
program Solve; procedure p1(x : Integer); begin end; procedure p0; var i: Integer; begin i := 0; while i <= 1000 do p1(i); end; begin end.
Le moyen le plus simple pour approcher ce problème est de changer le paramètre en un paramètre par valeur. Cependant, vous pouvez avoir de bonnes raisons de passer ce paramètre par référence, assurez-vous que cette modification dans votre programme n'affecte pas une autre partie de code. Une autre approche de ce problème consiste à changer la boucle for en une boucle while équivalente, comme dans le programme précédent.