OSDN Git Service

ツールバーの入力エリアで標準のコンテキストメニューが表示されない不具合の修正
authorh677 <h677>
Sat, 29 Jul 2006 00:08:08 +0000 (00:08 +0000)
committerh677 <h677>
Sat, 29 Jul 2006 00:08:08 +0000 (00:08 +0000)
Giko.dfm
Giko.pas
gikoNavi.res

index ac13f76..4b8d7f5 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -1,5 +1,5 @@
 object GikoForm: TGikoForm
-  Left = 422
+  Left = 241
   Top = 68
   HorzScrollBar.Visible = False
   VertScrollBar.Visible = False
@@ -159,7 +159,7 @@ object GikoForm: TGikoForm
           object ToolBar1: TToolBar
             Left = 2
             Top = 4
-            Width = 16
+            Width = 15
             Height = 18
             Align = alNone
             AutoSize = True
@@ -346,7 +346,7 @@ object GikoForm: TGikoForm
               end>
             EdgeBorders = [ebLeft, ebTop, ebRight]
             EdgeInner = esLowered
-            PopupMenu = MainCoolBarPopupMenu
+            OnContextPopup = MainCoolBarContextPopup
             OnBandInfo = ListCoolBarBandInfo
             OnChevronClick = ListCoolBarChevronClick
             object ListToolBar: TToolBar
@@ -573,7 +573,7 @@ object GikoForm: TGikoForm
               end>
             EdgeBorders = [ebLeft, ebTop, ebRight]
             EdgeInner = esLowered
-            PopupMenu = MainCoolBarPopupMenu
+            OnContextPopup = MainCoolBarContextPopup
             OnBandInfo = BrowserCoolBarBandInfo
             OnChevronClick = BrowserCoolBarChevronClick
             object BrowserToolBar: TToolBar
@@ -910,7 +910,7 @@ object GikoForm: TGikoForm
             Text = #12522#12531#12463
             Width = 735
           end>
-        PopupMenu = MainCoolBarPopupMenu
+        OnContextPopup = MainCoolBarContextPopup
         OnResize = MainCoolBarResize
         OnBandInfo = MainCoolBarBandInfo
         OnChevronClick = MainCoolBarChevronClick
@@ -971,7 +971,7 @@ object GikoForm: TGikoForm
           OnResize = AddressToolBarResize
           object AddressComboBox: TComboBox
             Left = 0
-            Top = 1
+            Top = 0
             Width = 177
             Height = 20
             DropDownCount = 20
@@ -5376,7 +5376,6 @@ object GikoForm: TGikoForm
     end
   end
   object MainCoolBarPopupMenu: TPopupMenu
-    OnPopup = MainCoolBarPopupMenuPopup
     Left = 100
     Top = 404
     object StdToolBarVisiblePMenu: TMenuItem
index c4e2008..6a905a3 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -543,7 +543,8 @@ type
     procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);
     procedure GetResURLMenuClick(Sender: TObject);
-    procedure MainCoolBarPopupMenuPopup(Sender: TObject);
+    procedure MainCoolBarContextPopup(Sender: TObject; MousePos: TPoint;
+      var Handled: Boolean);
        private
                { Private \90é\8c¾ }
                FEnabledCloseButton: Boolean;
@@ -7670,25 +7671,28 @@ begin
                ListView.Refresh;
        end;
 end;
-//! CoolBar\82Ì\83|\83b\83v\83A\83b\83v\91O\8f\88\97\9d
-procedure TGikoForm.MainCoolBarPopupMenuPopup(Sender: TObject);
+
+procedure TGikoForm.MainCoolBarContextPopup(Sender: TObject;
+  MousePos: TPoint; var Handled: Boolean);
 var
-    compPopup : TComponent;
+    pos : TPoint;
+    coolBar: TGikoCoolBar;
 begin
-    FToolBarSettingSender := tssNone;
-    if (Sender <> nil) and (Sender is TPopupMenu) then begin
-        // \8cÄ\82Ñ\8fo\82µ\8c³CoolBar\82É\82æ\82Á\82Ä\81CFToolBarSettingSender
-        // \82Ì\92l\82ð\95Ï\8dX\82·\82é
-        compPopup := TPopupMenu(Sender).PopupComponent;
-        if (compPopup <> nil) then begin
-            if (compPopup = MainCoolBar) then begin
-                FToolBarSettingSender := tssMain;
-            end else if (compPopup = ListCoolBar) then begin
-                FToolBarSettingSender := tssList;
-            end else if (compPopup = BrowserCoolBar) then begin
-                FToolBarSettingSender := tssBrowser;
-            end;
+    Handled := False;
+    if (Sender <> nil) and (Sender is TGikoCoolBar) then begin
+        coolBar := TGikoCoolBar(Sender);
+        if (coolBar = MainCoolBar) then begin
+            FToolBarSettingSender := tssMain;
+        end else if (coolBar = ListCoolBar) then begin
+            FToolBarSettingSender := tssList;
+        end else if (coolBar = BrowserCoolBar) then begin
+            FToolBarSettingSender := tssBrowser;
+        end else begin
+            FToolBarSettingSender := tssNone;
         end;
+        pos := coolBar.ClientToScreen( MousePos );
+        MainCoolBarPopupMenu.Popup( pos.X, pos.Y );
+        Handled := True;
     end;
 end;
 
index 6fb2987..10b290b 100644 (file)
Binary files a/gikoNavi.res and b/gikoNavi.res differ