Thema: Delphi Event "weiterreichen"

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

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

Event "weiterreichen"

  Alt 16. Jul 2004, 14:31
Folgendes Problem:

Ich habe in einer Klasse einen FileStream.
Dann habe ich eine zweite Klasse abgeleitet von TFileStream, welche mit einem Fortschritts-ereignis ausgerüstet wurde.

In meiner Klasse weise ich dem OnProgress Event der erweiterten FileStream Klasse eine Prozedur zu:

Delphi-Quellcode:
FileToAdd := TStreamProgressAdapter.Create(TFileStream.Create(Files[i], fmOpenRead));
FileToAdd.OnProgress := FileProgress;
Delphi-Quellcode:
procedure TArchive.FileProgress(Sender: TObject; Done: LongInt);
begin
  if Assigned(OnFileProgress) then
    OnFileProgress(nil, Done);
end;
Meine Klasse:
Delphi-Quellcode:
type
  TOnFileProgress = procedure(Sender: TObject; Done: LongInt);

  TArchive = class(TObject)
  private
    ...
    FOnFileProgress: TOnFileProgress;
    procedure FileProgress(Sender: TObject; Done: LongInt);
  public
    ...
    property OnFileProgress: TOnFileProgress read FOnFileProgress write FOnFileProgress;
  end;
Mein Einsatz im Programm:
Delphi-Quellcode:
procedure TForm1.FileProgress(Sender: TObject; Done: LongInt);
begin
  Progressbar2.Position := Done;
  Progressbar2.Refresh;
  Sleep(500);
end;
Archive.OnFileProgress := FileProgress; // Zeile 86 Delphi meint dazu aber:
Zitat:
[Error] Unit1.pas(86): Incompatible types: 'regular procedure and method pointer'
Wie löse ich jetzt das Problem und reiche das Ereignis aus meiner Klasse weiter?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat