+procedure TDownloadThread.WorkBegin(Sender: TObject;
+AWorkMode: TWorkMode; const AWorkCountMax: Integer);
+begin
+ if Assigned(OnWorkBegin) then begin
+ FWorkData.FWorkCS.Acquire;
+ try
+ FWorkData.FSender := Sender;
+ FWorkData.FAWorkMode := AWorkMode;
+ FWorkData.FAWorkCountMax := AWorkCountMax;
+ Synchronize(FireWorkBegin);
+ finally
+ FWorkData.FWorkCS.Release;
+ end;
+ end;
+end;
+
+procedure TDownloadThread.WorkEnd(Sender: TObject;
+AWorkMode: TWorkMode);
+begin
+ if Assigned(OnWorkEnd) then begin;
+ FWorkData.FWorkCS.Acquire;
+ try
+ FWorkData.FSender := Sender;
+ FWorkData.FAWorkMode := AWorkMode;
+ Synchronize(FireWorkEnd);
+ finally
+ FWorkData.FWorkCS.Release;
+ end;
+ end;
+end;
+
+procedure TDownloadThread.Work(Sender: TObject; AWorkMode:
+TWorkMode; const AWorkCount: Integer);
+begin
+ if Assigned(OnWork) then begin
+ FWorkData.FWorkCS.Acquire;
+ try
+ FWorkData.FSender := Sender;
+ FWorkData.FAWorkMode := AWorkMode;
+ FWorkData.FAWorkCount := AWorkCount;
+ Synchronize(FireWork);
+ finally
+ FWorkData.FWorkCS.Release;
+ end;
+ end;
+end;
+
+//\82±\82±\82©\82ç\90V\8bK\83\81\83\\83b\83h
+procedure TDownloadThread.FireWorkBegin;