E2094 Lokale Prozedur/Funktion '%s' wurde Prozedurenvariable zugewiesen (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Diese Fehlermeldung wird angezeigt, wenn Sie versuchen, eine lokale Prozedur einer Prozedurvariable zuzuweisen oder sie als prozeduralen Parameter zu übergeben.
Dies ist nicht erlaubt, da die lokale Prozedur dann auch aufgerufen werden könnte, wenn die umgebende Prozedur nicht aktiv ist. Wenn die lokale Prozedur in diesem Fall versucht, auf Variablen der umgebenden Prozedur zuzugreifen, hat dies einen Programmabsturz zur Folge.
program Produce; var P: Procedure; procedure Outer; procedure Local; begin Writeln('Local is executing'); end; begin P := Local; (*<-- Hier die Fehlermeldung*) end; begin Outer; P; end.
Hier wird versucht, einer Prozedurvariable eine lokale Prozedur zuzuweisen. Dies ist nicht erlaubt (weil zur Laufzeit unsicher).
program Solve; var P: Procedure; procedure NonLocal; begin Writeln('NonLocal is executing'); end; procedure Outer; begin P := NonLocal; end; begin Outer; P; end.
Verlegen Sie die lokale Prozedur aus der umgebenden Prozedur heraus.