Jo is schon so fast richtig.
Bei APIs hast du eigentlich nur einen Pointer, d.h. es sieht in etwa so aus:
Delphi-Quellcode:
function CallBack(i: Integer): Boolean;
stdcall;
begin
ShowMessage(IntToStr(i));
end;
procedure DoSomething(cb: Pointer);
stdcall;
//das wäre die API
var
i: Integer;
CallBack:
function(i: Integer): Boolean;
stdcall;
begin
if Assigned(cb)
then
begin
@CallBack := cb;
for i := 0
to 9
do
CallBack(i);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DoSomething(@CallBack);
// aufruf der API mit der callback funtion als pointer
end;