1
我曾經在表單上放置TZipForge組件,所以我可以使用它的事件處理程序。現在,我使用多個線程工作來提取一些zip文件,因此我創建了一個TZipForge類的實例作爲局部變量。如何在Object Inspector中沒有Event選項卡的情況下創建事件處理程序?在ZipForge中手動創建事件處理程序
我曾經在表單上放置TZipForge組件,所以我可以使用它的事件處理程序。現在,我使用多個線程工作來提取一些zip文件,因此我創建了一個TZipForge類的實例作爲局部變量。如何在Object Inspector中沒有Event選項卡的情況下創建事件處理程序?在ZipForge中手動創建事件處理程序
要創建一個事件hanlder手動喲必須建立與之相匹配的過程與目標事件的聲明,然後分配過程的地址到類的事件,例如,如果你想創建一個事件處理OnFileProgress
事件時,您必須在班級中創建類似這樣的過程。
檢查該樣本
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;
謝謝,現在我明白了。 – user