FOnWorkEnd: TGikoWorkEndEvent;
FOnDownloadEnd: TDownloadEndEvent;
FOnDownloadMsg: TDownloadMsgEvent;
- procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer);
+ procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
procedure WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);
procedure Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer; Number: Integer);
procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
var
i: Integer;
begin
- for i := 0 to FThreadList.Count - 1 do begin
- TDownloadThread(FThreadList[i]).Free;
+ FThreadList.Pack;
+ for i := FThreadList.Count - 1 downto 0 do begin
+ TDownloadThread(FThreadList[i]).Free;
end;
+ FThreadList.Capacity := FThreadList.Count;
FThreadList.Free;
+ FItemList.Clear;
FItemList.Free;
inherited;
end;
end;
FAbort := False;
end;
+ Application.ProcessMessages;
end;
for i := 0 to FThreadList.Count - 1 do begin
TDownloadThread(FThreadList[i]).Terminate;
FMaxThreadCount := Count;
end;
-procedure TThreadControl.WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer);
+procedure TThreadControl.WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
begin
if Assigned(OnWorkBegin) then
- OnWorkBegin(Sender, AWorkMode, AWorkCountMax, Number);
+ OnWorkBegin(Sender, AWorkMode, AWorkCountMax, Number, AWorkTitle);
end;
procedure TThreadControl.WorkEnd(Sender: TObject; AWorkMode: TWorkMode; Number: Integer);