Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: AccessViolation bei CallBack

  Alt 27. Aug 2008, 23:52
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;
  Mit Zitat antworten Zitat