delphi - Loosen "Local procedure/function assigned to procedure variable" restriction gracefully -
consider following test-case:
{ compilerversion = 21 } procedure global(); procedure local(); begin end; type tprocedure = procedure (); var proc: tprocedure; begin proc := local; { e2094 local procedure/function 'local' assigned procedure variable } end;
at line 13 compiler emits message error level, prohibiting of cases of such local procedures usage. "official" resolution promote local
symbol outer scope (ie: make sibling of global
) have negative impact on code "structuredness".
i'm seeking way circumvent in graceful manner, preferably causing compiler emit warning level message.
your best bet declare reference procedure
using new anonymous methods feature , can keep nicely encapsulated.
type tproc = reference procedure; procedure outer; var local: tproc; begin local := procedure begin dostuff; end; local; end;
this gets around issues mason describes capturing variables local anonymous function.
Comments
Post a Comment