Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#28

Re: Was ist eine Callback Funktion

  Alt 31. Mär 2006, 07:27
Bei mir funktioniert beides. Aber eigentlich sollte, wenn ich es mir genau überlege, nach Elvis Methode nur zweitere funktionieren, da kein Zeiger mehr erwartet wird.

Eventuell sollte man es so machen:
Delphi-Quellcode:
function CallBack(i: Integer): Boolean; stdcall;
begin
  result := True;
  ShowMessage(IntToStr(i));
  if i = 5 then
    result := False;
end;

type
  TCallbackProc = function(i: Integer): Boolean; stdcall;
  PCallbackProc = ^TCallbackProc;

procedure DoSomething(cbp: PCallbackProc); stdcall;
var
  i: Integer;
  CallbackProc: TCallbackProc;
begin
  if Assigned(cbp) then
  begin
    @CallbackProc := cbp;
    for i := 0 to 9 do
      if not CallBackProc(i) then
        break;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DoSomething(@Callback);
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat