Reputation: 572
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
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
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