OSDN Git Service

キャビネットが非表示のときにフォーカスを当てるでエラーがでる不具合の修正
authorh677 <h677>
Wed, 2 Jun 2004 16:05:27 +0000 (16:05 +0000)
committerh677 <h677>
Wed, 2 Jun 2004 16:05:27 +0000 (16:05 +0000)
全てのタブ閉じるで確認ダイアログを出すオプションを作った。

Giko.dfm
Giko.pas
gikoNavi.res

index 1f7af92..5de43fc 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -1,6 +1,6 @@
 object GikoForm: TGikoForm
-  Left = 333
-  Top = 253
+  Left = 280
+  Top = 214
   HorzScrollBar.Visible = False
   VertScrollBar.Visible = False
   AutoScroll = False
@@ -8641,6 +8641,7 @@ object GikoForm: TGikoForm
       Caption = #12461#12515#12499#12493#12483#12488#12395#12501#12457#12540#12459#12473#12434#24403#12390#12427
       Hint = #12461#12515#12499#12493#12483#12488#12395#12501#12457#12540#12459#12473#12434#24403#12390#12427
       OnExecute = SetFocusForCabinetActionExecute
+      OnUpdate = SetFocusForCabinetActionUpdate
     end
     object FileRun1: TFileRun
       Category = #12501#12449#12452#12523
index 82b54cb..907b2dd 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -864,6 +864,7 @@ type
     procedure BrowserMaxAndFocusActionUpdate(Sender: TObject);
     procedure ThreadlistMaxAndFocusActionExecute(Sender: TObject);
     procedure ListViewExit(Sender: TObject);
+    procedure SetFocusForCabinetActionUpdate(Sender: TObject);
        private
                { Private \90é\8c¾ }
         //RoundList : TRoundList;
@@ -1758,6 +1759,7 @@ var
        i: Integer;
 //     CoolSet: TCoolSet;
        wp: TWindowPlacement;
+       tmpBool: Boolean;
 begin
 //     Application.OnDeactivate := nil;
 //     Self.OnDeactivate := nil;
@@ -1821,25 +1823,22 @@ begin
 
        try
                //\83^\83u\83N\83\8d\81[\83Y
-               BrowserNullTab.Thread := nil;
-               BrowserTab.OnChange := nil;
-               BrowserTab.Tabs.BeginUpdate;
-               for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
-                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free;
-               end;
-               FActiveContent := nil;
-               BrowserTab.Tabs.Clear;
-               BrowserTab.Tabs.EndUpdate;
-               BrowserTab.OnChange := BrowserTabChange;
+               tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
+               GikoSys.Setting.ShowDialogForAllTabClose := false;
+               AllTabCloseAction.Execute;
+        GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
        except
        end;
-
-       for i := FBrowsers.Count - 1 downto 0 do begin
-               TWebBrowser(FBrowsers[i]).Free;
+       try
+               LockWindowUpdate(Self.Handle);
+               for i := FBrowsers.Count - 1 downto 0 do begin
+                       TWebBrowser(FBrowsers[i]).Free;
+               end;
+               FBrowsers.Clear;
+               FBrowsers.Capacity := 0;
+       finally
+               FBrowsers.Free;
        end;
-       FBrowsers.Clear;
-       FBrowsers.Capacity := 0;
-       FBrowsers.Free;
        try
                if BrowserNullTab <> nil then begin
                        BrowserNullTab.Browser := nil;  {*BrowserNullTab\82ÌBrowser\82Í\90Ý\8cv\8e\9e\82É\93\\82è\95t\82¯\82Ä\82é\93z
@@ -1849,7 +1848,7 @@ begin
                end;
        except
        end;
-
+       LockWindowUpdate(0);
        try
                TreeView.Items.BeginUpdate;
                for i := TreeView.Items.Count - 1 downto 0 do begin
@@ -2003,9 +2002,14 @@ end;
 procedure TGikoForm.ReloadBBS;
 var
        i                       : Integer;
+       tmpBool: Boolean;
 begin
        //\83^\83u\83N\83\8d\81[\83Y
+       tmpBool := GikoSys.Setting.ShowDialogForAllTabClose;
+       GikoSys.Setting.ShowDialogForAllTabClose := false;
        AllTabCloseAction.Execute;
+       GikoSys.Setting.ShowDialogForAllTabClose := tmpBool;
+
        SetContent(BrowserNullTab);
        //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
        TreeView.Items.Clear;
@@ -5592,7 +5596,10 @@ procedure TGikoForm.AllTabCloseActionExecute(Sender: TObject);
 var
        i: Integer;
 begin
-       //SetContent(BrowserNullTab);
+       if GikoSys.Setting.ShowDialogForAllTabClose then
+               if(MessageDlg('\91S\82Ä\82Ì\83^\83u\82ð\95Â\82\82Ä\82æ\82ë\82µ\82¢\82Å\82·\82©\81H', mtConfirmation,[mbOk, mbCancel], 0) = mrCancel ) then
+                       Exit;
+
        FActiveContent := nil;
        BrowserNullTab.Thread := nil;
        BrowserTab.OnChange := nil;
@@ -5783,25 +5790,26 @@ begin
                Html := IHTMLDocument2(TWebBrowser(Sender).Document).activeElement.Get_outerHTML;
                if(AnsiPos('>>', Text) = 1) or (AnsiPos('>', Text) = 1)
                        or (AnsiPos('\81\84\81\84', Text) = 1) or (AnsiPos('\81\84', Text) = 1) then begin
-                       Text := ZenToHan(Text);
+                       if GikoSys.Setting.ResAnchorJamp then begin
+                               Text := ZenToHan(Text);
 
-                       if(AnsiPos('>>', Text) = 1) then begin
-                               Text := Copy(Text, 3, Length(Text) - 2);
-                       end else begin
-                               Text := Copy(Text, 2, Length(Text) - 1);
+                               if(AnsiPos('>>', Text) = 1) then begin
+                                       Text := Copy(Text, 3, Length(Text) - 2);
+                               end else begin
+                                       Text := Copy(Text, 2, Length(Text) - 1);
+                               end;
+                               if AnsiPos('-', Text) <> 0 then begin
+                                       wkIntSt := StrToIntDef(Copy(Text, 1, AnsiPos('-', Text) - 1), 0);
+                                       Text := Copy(Text, AnsiPos('-', Text) + 1, Length(Text));
+                                       wkIntTo := StrToIntDef(Text, 0);
+                                       if wkIntTo < wkIntSt then
+                                               wkIntSt := wkIntTo;
+                               end else
+                                       wkIntSt := StrToIntDef(Text, 0);
+
+                               if wkIntSt <> 0 then
+                                       BrowserMovement(IntToStr(wkIntSt));
                        end;
-                       if AnsiPos('-', Text) <> 0 then begin
-                               wkIntSt := StrToIntDef(Copy(Text, 1, AnsiPos('-', Text) - 1), 0);
-                               Text := Copy(Text, AnsiPos('-', Text) + 1, Length(Text));
-                               wkIntTo := StrToIntDef(Text, 0);
-                               if wkIntTo < wkIntSt then
-                                       wkIntSt := wkIntTo;
-                       end else
-                               wkIntSt := StrToIntDef(Text, 0);
-
-                       if wkIntSt <> 0 then
-                               BrowserMovement(IntToStr(wkIntSt));
-
                end else begin
                        URL := GikoSys.GetHRefText(Html);
                        URL := GikoSys.HTMLDecode(URL);
@@ -8433,6 +8441,9 @@ var
        FilterList : TStringList;
        i: Integer;
 begin
+       if(FActiveContent <> nil) and (FActiveContent.FBrowser <> nil )
+               and (FActiveContent.FBrowser.Busy) then Exit;
+
        // \83{\83^\83\93\82Ì\8dX\90V
        AllResAction.Checked := True;
        SelectResAction.Checked := False;
@@ -10124,8 +10135,21 @@ procedure TGikoForm.SetFocusForCabinetActionExecute(Sender: TObject);
 begin
        if FActiveContent <> nil then
                WebBrowserClick(FActiveContent.Browser); //\88ê\89ñBrowser\82É\93\96\82Ä\82È\82¢\82Æ\93®\82©\82È\82¢\82Æ\82«\82ª\82 \82é
-       TreeView.SetFocus;
+       if TreeView.Visible then begin
+               TreeView.SetFocus;
+               if(TreeView.Items.Count > 0) and ( TreeView.Selected = nil ) then
+                       TreeView.Items.Item[0].Selected := true;
+       end else if FavoriteTreeView.Visible then begin
+               FavoriteTreeView.SetFocus;
+               if(FavoriteTreeView.Items.Count > 0) and (FavoriteTreeView.Selected = nil) then
+                       FavoriteTreeView.Items.Item[0].Selected := true;
+       end;
+end;
+procedure TGikoForm.SetFocusForCabinetActionUpdate(Sender: TObject);
+begin
+       SetFocusForCabinetAction.Enabled := CabinetPanel.Visible;
 end;
+
 //\83u\83\89\83E\83U\82ð\8dÅ\91å\89»\82µ\82Ä\83t\83H\81[\83J\83X\82ð\93\96\82Ä\82é\81B
 procedure TGikoForm.BrowserMaxAndFocusActionExecute(Sender: TObject);
 begin
@@ -10153,6 +10177,7 @@ begin
        ListView.Repaint;
 end;
 
+
 initialization
                                OleInitialize(nil);
 finalization
index 8c8c1f7..abddfd0 100644 (file)
Binary files a/gikoNavi.res and b/gikoNavi.res differ