考虑以下测试用例:
在第13行,编译器发出ERROR级别的消息,禁止使用此类本地过程。 "官方"解决方法是将
我正在寻找最优雅的方法来规避它,最好是引起编译器发出WARNING级别的消息。
{ CompilerVersion = 21 }
procedure Global();
procedure Local();
begin
end;
type
TProcedure = procedure ();
var
Proc: TProcedure;
begin
Proc := Local; { E2094 Local procedure/function 'Local' assigned to procedure variable }
end;
在第13行,编译器发出ERROR级别的消息,禁止使用此类本地过程。 "官方"解决方法是将
Local
符号提升到外部范围(即:使其成为 Global
的同级),这将对代码“结构性”产生负面影响。
我正在寻找最优雅的方法来规避它,最好是引起编译器发出WARNING级别的消息。
global
内部调用local
时,如果尝试更改局部变量,就会出现奇怪的错误(内存损坏),而这种情况经常发生。 - Andreas Rejbrand