E2094 La procédure/fonction locale '%s' est affectée à une variable procédure (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Ce message d'erreur est émis si vous essayez d'affecter une procédure locale à une variable procédure ou de la transmettre comme paramètre procédure.
Ceci est incorrect car la procédure locale pourrait alors être appelée même si la procédure incluse n'est pas active. Cette situation peut provoquer un plantage du programme si la procédure locale essaie d'accéder à une variable de la procédure incluse.
program Produce; var P : Procedure; procedure Outer; procedure Local; begin Writeln('Local sexécute'); end; begin P := Local; (*<-- Message d'erreur ici*) end; begin Outer; P; end.
L'exemple essaie d'affecter une procédure locale à une variable locale. Ceci est incorrect car l'exécution n'est pas sécurisée.
program Solve; var P : Procedure; procedure NonLocal; begin Writeln('NonLocal sexécute'); end; procedure Outer; begin P := NonLocal; end; begin Outer; P; end.
La solution consiste à déplacer la procédure locale hors de celle incluse.