Zitat von
blackdrake:
Vielen Dank für die Korrektur! Funktioniert prima. Ich musste lediglich das "of object" noch wegnehmen.
Ok, das habe ich übersehen. Wenn deine Callbackroutine zur Klasse gehören soll oder es eine Methode in einem Formular ist, dann solltest bzw. musst du aber das "of object" beibehalten.
Delphi-Quellcode:
type
TDownloadCallBackStatus = procedure(FilesDownloaded: Integer) of object;
Txxx = class(T...)
private
{...}
FDownloadCallBackStatus:TDownloadCallBackStatus;
public
{...}
property OnDownloadCallBackStatus:TDownloadCallBackStatus
read FDownloadCallBackStatus write FDownloadCallBackStatus;
procedure DownloadOrSynchronize(SearchString: string; OnlySync: boolean);
end;
TMainForm = class(TForm)
private
procedure CallBack(FilesDownloaded: Integer);
public
end;
procedure Txxx.DownloadOrSynchronize(SearchString: string; OnlySync: boolean);
var
begin
{...}
if Assigned(FDownloadCallBackStatus) then
FDownloadCallBackStatus(j);
{...}
end;
procedure TMainForm.btn_download_click(Sender: TObject);
begin
{...}
AOBJ.OnDownloadCallBackStatus:=CallBack;
AOBJ.DownloadOrSynchronize(edt_tags.Text, chk_nodownload.Checked);
{...}
end;
procedure TMainForm.CallBack(FilesDownloaded: Integer);
begin
Label_x.Caption := inttostr(FilesDownloaded);
end;