[fpc-pascal] Callbacks as nested functions
Mattias Gaertner
nc-gaertnma at netcologne.de
Mon Oct 23 15:55:33 CEST 2017
On Mon, 23 Oct 2017 20:04:36 +0700
Ryan Joseph <ryan at thealchemistguild.com> wrote:
> > On Oct 23, 2017, at 4:56 PM, Sven Barth via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:
> >
> > What exactly are you trying? If the nested function accesses its outer scope then it definitely won't work. For that you'd need to wait for anonymous function support (which are planned - at least a far as I'm concerned - to also support nested functions).
> >
>
> I cast DoThis to the type but the arguments are not correct not and a does not equal 0.
program test1;
{$mode objfpc}{$H+}
{$ModeSwitch nestedprocvars}
type
TCallback = procedure (a: integer) is nested;
procedure DoCallback;
procedure DoThis(a: integer);
begin
writeln(a);
end;
var
callback: TCallback;
begin
callback := @DoThis;
callback(100);
end;
begin
DoCallback;
end.
Keep in mind what Sven wrote. You cannot use "callback" outside of
DoCallBack, because FPC does not yet support Delphi's "reference to".
Mattias
More information about the fpc-pascal
mailing list