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

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -