ELCouz
ELCouz

Reputation: 572

Delphi callbacks?

I would like to know if it's possible to implement something like this:

procedure waitandcall(time,@MyProcedureOrFunction)

which execute the function or procedure I've created ?

I'm not sure if they are called callbacks.

Upvotes: 12

Views: 18996

Answers (2)

ESG
ESG

Reputation: 9425

It's absolutely possible, and you don't even need @ before your function.

In fact, all the events are based on this.

Start by defining a type for your function/procedure

type
  TMyProc = procedure(Param1: Integer);

Then you can use your procedure type anywhere, as long as your procedure's signature matches your type.

If you're using an object method instead of a plain procedure/function, you need to use of object

type
  TMyMethod = procedure(Param1: Integer) of object;

To call your callback from within, you can use something like this:

procedure DoAndCallBack(MyProc: TMyProc)
begin
  MyProc(1);
end;

Upvotes: 26

Rob Kennedy
Rob Kennedy

Reputation: 163247

Callbacks are exactly what those are called, and Delphi is entirely capable of both creating and calling them. They are also known as function pointers. See Procedural Types in the documentation.

Upvotes: 5

Related Questions