Чтобы создать обработчик событий вручную, вы должны создать процедуру, совпадающую с объявлением целевого события, а затем присвоить Адрес этой процедуры событию класса, например, если вы хотите создайте дескриптор события для события OnFileProgress
, вы должны создать процедуру, подобную этой, внутри вашего класса.
procedure FileProgress(Sender: TObject; FileName: string;
Progress: Double; Operation: TZFProcessOperation;
ProgressPhase: TZFProgressPhase; var Cancel: Boolean);
Проверьте этот образец
procedure TForm1.FileProgress(Sender: TObject; FileName: string;
Progress: Double; Operation: TZFProcessOperation;
ProgressPhase: TZFProgressPhase; var Cancel: Boolean);
begin
//do your stuff here
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Archiver : TZipForge;
begin
Archiver := TZipForge.Create(nil);
try
Archiver.OnFileProgress:=FileProgress;//<- Here the event handler is assigned
Archiver.FileName := 'compressedfile.zip';
Archiver.OpenArchive(fmOpenRead);
try
Archiver.BaseDir := 'C\Foo';
Archiver.ExtractFiles('*.*');
finally
Archiver.CloseArchive();
end;
finally
Archiver.Free;
end;
end;