Delphi 在ZipForge中手动创建事件处理程序

Delphi 在ZipForge中手动创建事件处理程序,delphi,event-handling,unzip,Delphi,Event Handling,Unzip,我曾经在表单上删除组件,以便使用它的事件处理程序。现在,我使用几个线程工作程序来提取一些zip文件,因此我创建了一个TZipForge类的实例作为局部变量。如何在对象检查器中创建不带事件选项卡的事件处理程序?要手动创建事件处理程序,必须创建一个与目标事件声明匹配的过程,然后将该过程的地址分配给类的事件,例如,如果要为事件创建事件句柄,则必须在类内部创建这样的过程 procedure FileProgress(Sender: TObject; FileName: string; Progress

我曾经在表单上删除组件,以便使用它的事件处理程序。现在,我使用几个线程工作程序来提取一些zip文件,因此我创建了一个TZipForge类的实例作为局部变量。如何在对象检查器中创建不带事件选项卡的事件处理程序?

要手动创建事件处理程序,必须创建一个与目标事件声明匹配的过程,然后将该过程的地址分配给类的事件,例如,如果要为事件创建事件句柄,则必须在类内部创建这样的过程

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;
procedure TForm1.FileProgress(发送方:TObject;文件名:string;
进度:双;操作:TZFProcessOperation;
ProgressPhase:TZFProgressPhase;var Cancel:Boolean);
开始
//在这里做你的事
终止
过程TForm1.FormCreate(发送方:TObject);
变量
建筑师:齐普福吉;
开始
Archiver:=tzipferge.Create(无);
尝试

Archiver.OnFileProgress:=FileProgress// 要手动创建事件handle,您必须创建一个与目标事件声明匹配的过程,然后将该过程的地址分配给类的事件,例如,如果要为事件创建事件句柄,则必须在类内部创建这样的过程

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;
procedure TForm1.FileProgress(发送方:TObject;文件名:string;
进度:双;操作:TZFProcessOperation;
ProgressPhase:TZFProgressPhase;var Cancel:Boolean);
开始
//在这里做你的事
终止
过程TForm1.FormCreate(发送方:TObject);
变量
建筑师:齐普福吉;
开始
Archiver:=tzipferge.Create(无);
尝试
Archiver.OnFileProgress:=FileProgress//