OSDN Git Service

・ギコナビを終了するときにクラッシュするので、
authoryoffy <yoffy>
Sat, 22 Nov 2003 04:57:17 +0000 (04:57 +0000)
committeryoffy <yoffy>
Sat, 22 Nov 2003 04:57:17 +0000 (04:57 +0000)
 根本的な解決策ではないが開放処理をシステムに任せてみた。

Giko.pas

index bceccb4..f2fa011 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -1109,11 +1109,14 @@ begin
 //     SetBoardTreeNode;                                                                               //\83c\83\8a\81[\82É\83{\81[\83h\92Ç\89Á
        // \83\81\83j\83\85\81[\82É\92Ç\89Á
        for i := Length( BBSs ) - 1 downto 0 do begin
-               item                                    := TBBSMenuItem.Create( PopupMenu );
-               item.Caption    := BBSs[ i ].Title;
-               item.Data                       := BBSs[ i ];
-               item.OnClick    := BBSMenuItemOnClick;
-               CabinetSelectPopupMenu.Items.Insert( 0, item );
+       try
+      item                                     := TBBSMenuItem.Create( PopupMenu );
+      item.Caption     := BBSs[ i ].Title;
+      item.Data                        := BBSs[ i ];
+      item.OnClick     := BBSMenuItemOnClick;
+      CabinetSelectPopupMenu.Items.Insert( 0, item );
+    except
+    end;
        end;
 
        //\82¨\8bC\82É\93ü\82è\93Ç\82Ý\8d\9e\82Ý
@@ -1688,6 +1691,7 @@ begin
                RoundList.SaveRoundFile;
        except
        end;
+  {
        try
                RoundList.Clear;
        except
@@ -1702,7 +1706,7 @@ begin
                FHistoryList.Free;
        except
        end;
-
+  }
        //\83A\83h\83\8c\83X\97\9a\97ð\95Û\91
        try
                AddressHistoryDM.WriteHistory(AddressComboBox.Items, GikoSys.Setting.AddressHistoryCount);
@@ -1714,18 +1718,20 @@ begin
        except
        end;
 
+  {
 //     FDownload.Free;
        try
                SetActiveList(nil);
        except
        end;
+
        //TreeView\83N\83\8a\83A\81iBBS2ch.Free\82Ì\8cã\82É\83N\83\8a\83A\82·\82é\82ÆXP\83X\83^\83C\83\8b\8e\9e\82É\83G\83\89\81[\8fo\82é\81j
        Sleep(10);
        try
                TreeView.Items.Clear;
        except
        end;
-
+       }
        try
                if FavoriteDM <> nil then
                        FavoriteDM.Free;
@@ -1735,6 +1741,16 @@ begin
                AddressHistoryDM := nil;
        except
        end;
+       {
+  try
+       for i := 0 to Length( BoardPlugIns ) - 1 do begin
+       if BoardPlugIns[ i ] <> nil then
+       BoardPlugIns[ i ].Free;
+      BoardPlugIns[ i ] := nil;
+    end;
+  except
+  end;
+
        try
                for i := 0 to Length( BBSs ) - 1 do begin
                        if BBSs[ i ] <> nil then
@@ -1744,6 +1760,16 @@ begin
        except
        end;
 
+  try
+       for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
+       if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
+        //CabinetSelectPopupMenu.Items[ i ].Free;
+        CabinetSelectPopupMenu.Items.Delete( i );
+      end;
+    end;
+  except
+  end;
+
        try
                //Hint\94j\8aü
                if FHint <> nil then begin
@@ -1758,6 +1784,7 @@ begin
                end;
        except
        end;
+  }
 end;
 
 procedure TGikoForm.FormDestroy(Sender: TObject);
@@ -1815,10 +1842,11 @@ begin
        TreeView.Items.Clear;
 
        //BBS\94j\8aü
-       for i := 0 to Length( BBSs ) - 1 do begin
-               BBSs[ i ].Free;
-               BBSs[ i ] := nil;
-       end;
+  for i := 0 to Length( BBSs ) - 1 do begin
+    if BBSs[ i ] <> nil then
+      BBSs[ i ].Free;
+    BBSs[ i ] := nil;
+  end;
 
        ActiveList := nil;
 
@@ -1827,18 +1855,24 @@ begin
        GikoSys.ReadBoardFile;          //\83{\81[\83h\83t\83@\83C\83\8b\93Ç\8d\9e
        // \83\81\83j\83\85\81[\82ð\8dí\8f\9c
        for i := CabinetSelectPopupMenu.Items.Count - 1 downto 0 do begin
-               if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
-                       CabinetSelectPopupMenu.Items[ i ].Free;
-                       CabinetSelectPopupMenu.Items.Delete( i );
-               end;
+       try
+      if CabinetSelectPopupMenu.Items[ i ] is TBBSMenuItem then begin
+        CabinetSelectPopupMenu.Items[ i ].Free;
+        CabinetSelectPopupMenu.Items.Delete( i );
+      end;
+               except
+    end;
        end;
        // \83\81\83j\83\85\81[\82É\92Ç\89Á
        for i := Length( BBSs ) - 1 downto 0 do begin
-               item                                    := TBBSMenuItem.Create( PopupMenu );
-               item.Caption    := BBSs[ i ].Title;
-               item.Data                       := BBSs[ i ];
-               item.OnClick    := BBSMenuItemOnClick;
-               CabinetSelectPopupMenu.Items.Insert( 0, item );
+       try
+      item                                     := TBBSMenuItem.Create( PopupMenu );
+      item.Caption     := BBSs[ i ].Title;
+      item.Data                        := BBSs[ i ];
+      item.OnClick     := BBSMenuItemOnClick;
+      CabinetSelectPopupMenu.Items.Insert( 0, item );
+               except
+    end;
        end;
        ShowBBSTree( BBSs[ 0 ] );
 end;