OSDN Git Service

・スレタイにタブ文字があるスレッドをHTML化して保存できない問題を修正
[gikonavigoeson/gikonavi.git] / ThreadControl.pas
index c12ae07..8b09718 100644 (file)
@@ -18,7 +18,7 @@ type
                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);
@@ -108,10 +108,14 @@ begin
                end;
         Application.ProcessMessages;
        end;
+    // \8ec\82Á\82Ä\82¢\82é\83X\83\8c\83b\83h\82ð\91S\82Ä\8fI\97¹\82³\82¹\82é\81B
        for i := 0 to FThreadList.Count - 1 do begin
+        TDownloadThread(FThreadList[i]).Abort;
                TDownloadThread(FThreadList[i]).Terminate;
-               if TDownloadThread(FThreadList[i]).Suspended then
+               if TDownloadThread(FThreadList[i]).Suspended then begin
                        TDownloadThread(FThreadList[i]).Resume;
+            TDownloadThread(FThreadList[i]).WaitFor;
+        end;
        end;
 
 end;
@@ -167,10 +171,10 @@ begin
        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);