Solte a restrição “Procedimento / função local atribuída à variável de procedimento” normalmente
Considere o seguinte caso de teste:
{ 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;
Na linha 13, o compilador emite mensagem com o nível de ERRO, proibindo todos os casos de uso de procedimentos locais. A resolução "oficial" é promoverLocal
símbolo para o escopo externo (ex .: torne-o irmão deGlobal
) que teriam um impacto negativo no código "estrutura".
Estou procurando uma maneira de contorná-lo da maneira mais graciosa, de preferência fazendo com que o compilador emita uma mensagem de nível de AVISO.