OSDN Git Service

キャビネットでのクリックイベントの抑制
authorh677 <h677>
Thu, 24 Nov 2005 16:19:28 +0000 (16:19 +0000)
committerh677 <h677>
Thu, 24 Nov 2005 16:19:28 +0000 (16:19 +0000)
Giko.dfm
Giko.pas

index be7df15..eb6aabb 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -1,6 +1,6 @@
 object GikoForm: TGikoForm
-  Left = 161
-  Top = 121
+  Left = 332
+  Top = 101
   HorzScrollBar.Visible = False
   VertScrollBar.Visible = False
   AutoScroll = False
@@ -106,11 +106,14 @@ object GikoForm: TGikoForm
           TabOrder = 0
           OnClick = TreeViewClick
           OnCollapsed = TreeViewCollapsed
+          OnCollapsing = TreeViewCollapsing
           OnCustomDraw = TreeViewCustomDraw
           OnCustomDrawItem = TreeViewCustomDrawItem
           OnDblClick = TreeViewDblClick
+          OnExpanding = TreeViewExpanding
           OnExpanded = TreeViewExpanded
           OnKeyDown = TreeViewKeyDown
+          OnMouseUp = TreeViewMouseUp
         end
         object Panel3: TPanel
           Left = 0
@@ -225,12 +228,15 @@ object GikoForm: TGikoForm
           RightClickSelect = True
           ShowRoot = False
           TabOrder = 3
+          OnClick = FavoriteTreeViewClick
+          OnCollapsing = FavoriteTreeViewCollapsing
           OnDblClick = FavoriteTreeViewDblClick
           OnDragDrop = FavoriteTreeViewDragDrop
           OnDragOver = FavoriteTreeViewDragOver
           OnEdited = FavoriteTreeViewEdited
           OnEditing = FavoriteTreeViewEditing
           OnEndDrag = FavoriteTreeViewEndDrag
+          OnExpanding = FavoriteTreeViewExpanding
           OnKeyDown = FavoriteTreeViewKeyDown
           OnMouseDown = FavoriteTreeViewMouseDown
           OnMouseUp = FavoriteTreeViewMouseUp
index 5d52f4a..13a6629 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -541,6 +541,17 @@ type
          var Handled: Boolean);
     procedure GikoApplicationEventsDeactivate(Sender: TObject);
     procedure GikoApplicationEventsException(Sender: TObject; E: Exception);
+    procedure FavoriteTreeViewClick(Sender: TObject);
+    procedure FavoriteTreeViewCollapsing(Sender: TObject; Node: TTreeNode;
+      var AllowCollapse: Boolean);
+    procedure FavoriteTreeViewExpanding(Sender: TObject; Node: TTreeNode;
+      var AllowExpansion: Boolean);
+    procedure TreeViewCollapsing(Sender: TObject; Node: TTreeNode;
+      var AllowCollapse: Boolean);
+    procedure TreeViewExpanding(Sender: TObject; Node: TTreeNode;
+      var AllowExpansion: Boolean);
+    procedure TreeViewMouseUp(Sender: TObject; Button: TMouseButton;
+      Shift: TShiftState; X, Y: Integer);
        private
                { Private \90é\8c¾ }
                FSortIndex: Integer;
@@ -589,7 +600,7 @@ type
                FStartUp : Boolean;
                FIsHandledWheel : Boolean;                      ///< \8aù\82É\8eó\82¯\8eæ\82Á\82½ WM_MOUSEWHEEL \82©\82Ç\82¤\82©
                                DiffComp: Boolean;                      //Add by Genyakun \83X\83\8c\82ª\8dX\90V\82³\82ê\82½\82Æ\82«\82ÉTrue\82É\82È\82é
-               FOrigenCaption: String;                         //\82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83A\83C\83e\83\80\95Ò\8fW\8e\9e\82Ì\95Ò\8fW\91O\82Ì\95\8e\9a\97ñ                              
+               FOrigenCaption: String;                         //\82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83A\83C\83e\83\80\95Ò\8fW\8e\9e\82Ì\95Ò\8fW\91O\82Ì\95\8e\9a\97ñ
                procedure DownloadEnd(Sender: TObject; Item: TDownloadItem);
                procedure DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
                procedure WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer; Number: Integer; const AWorkTitle: string);
@@ -2321,18 +2332,17 @@ begin
        ListView.SetFocus;
        ListView.SelectAll;
 end;
-
+// *************************************************************************
+//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83_\83u\83\8b\83N\83\8a\83b\83N\83C\83x\83\93\83g
+// *************************************************************************
 procedure TGikoForm.TreeViewDblClick(Sender: TObject);
 var
        APoint: TPoint;
        HitTest: THitTests;
 begin
-       GetCursorPos(APoint);
-       APoint := TreeView.ScreenToClient(APoint);
-       HitTest := TreeView.GetHitTestInfoAt(APoint.x, APoint.y);
-       if not (htOnLabel in HitTest) then Exit;
-
-       TreeDoubleClick( TreeView.Selected );
+       if (FClickNode = TreeView.Selected) then begin
+               TreeDoubleClick( FClickNode );
+       end;
 end;
 
 procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
@@ -6357,27 +6367,17 @@ begin
        end;
 
 end;
-
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83_\83u\83\8b\83N\83\8a\83b\83N\83C\83x\83\93\83g
+// *************************************************************************
 procedure TGikoForm.FavoriteTreeViewDblClick(Sender: TObject);
-var
-       mousePoint : TPoint;
-       item : TTreeNode;
-       rect : TRect;
 begin
-       mousePoint := Mouse.CursorPos;
-       mousePoint := FavoriteTreeView.ScreenToClient(mousePoint);
-       item := FavoriteTreeView.GetNodeAt(mousePoint.X, mousePoint.Y);
-       //\91I\91ð\82µ\82½\83A\83C\83e\83\80\82Æ\93¯\82\82©\83`\83F\83b\83N
-       if item = FavoriteTreeView.Selected then begin
-               //\95\\8e¦\82µ\82Ä\82¢\82é\94Í\88Í\82Æ\93¯\82\82Æ\82±\82ë\82©\83`\83F\83b\83N
-               rect := item.DisplayRect(true);
-               //\83C\83\81\81[\83W\95ª\8d\82É\90L\82Î\82·
-               rect.Left := rect.Left - FavoriteTreeView.Images.Width;
-               if ((mousePoint.X >= rect.Left) and (mousePoint.X <= rect.Right)) and
-                       ((mousePoint.Y >= rect.Top) and (mousePoint.Y <= rect.Bottom)) then begin
-                       FClickNode := FavoriteTreeView.Selected;
-                       GikoDM.FavoriteTreeViewReloadActionExecute( Sender );
-               end;
+       //\83N\83\8a\83b\83N\8e\9e\82Ì\91I\91ð\83C\83x\83\93\83g\82Æ\93¯\82\82È\82ç\83_\83u\83\8b\83N\83\8a\83b\83N\8eÀ\8ds
+       if (FClickNode = FavoriteTreeView.Selected) then begin
+{$IFDEF DEBUG}
+               Writeln('FVDbClick');
+{$ENDIF}
+               GikoDM.FavoriteTreeViewReloadActionExecute( Sender );
        end;
 end;
 
@@ -6744,6 +6744,9 @@ begin
                                        FavoriteClick( Node );
                Exit;
        end;
+    //\8c»\8dÝ\95\\8e¦\82µ\82Ä\82¢\82é\82Ì\82Æ\93¯\82\82È\82ç\8dÄ\95`\89æ\82µ\82È\82¢
+       if ActiveList = Node.Data then
+               Exit;
 
        ActiveListColumnSave;
 
@@ -6755,7 +6758,7 @@ begin
                if not TBoard(Node.Data).IsThreadDatRead then begin
                        Screen.Cursor := crHourGlass;
                        try
-        if not TBoard(Node.Data).IsThreadDatRead then
+               if not TBoard(Node.Data).IsThreadDatRead then
                                        GikoSys.ReadSubjectFile(Node.Data);
                        finally
                                Screen.Cursor := crDefault;
@@ -6805,12 +6808,13 @@ begin
        end;
 
 end;
-
+// *************************************************************************
+//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83N\83\8a\83b\83N\83C\83x\83\93\83g
+// *************************************************************************
 procedure TGikoForm.TreeViewClick(Sender: TObject);
 begin
-       TreeClick( TreeView.Selected );
+       FClickNode := TreeView.Selected;
 end;
-
 procedure TGikoForm.TreeViewKeyDown(Sender: TObject; var Key: Word;
        Shift: TShiftState);
 begin
@@ -6832,11 +6836,12 @@ var
 begin
 
        case Button of
-       mbLeft:
+       {mbLeft:
                begin
                        FMouseDownPos.X := X;
                        FMouseDownPos.Y := Y;
                end;
+       }
        mbMiddle:
                begin
                        favItem := FavoriteTreeView.GetNodeAt( X, Y );
@@ -6894,25 +6899,18 @@ begin
        end;
 
 end;
-
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83}\83E\83X\83A\83b\83v\83C\83x\83\93\83g
+// *************************************************************************
 procedure TGikoForm.FavoriteTreeViewMouseUp(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
-var
-       item : TTreeNode;
-       rect : TRect;
 begin
-       if (abs( X - FMouseDownPos.X ) < Mouse.DragThreshold) and
-                (abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin
-               item := FavoriteTreeView.GetNodeAt(X, Y);
-               if item = FavoriteTreeView.Selected then begin
-                       //\83C\83\81\81[\83W\94Í\88Í\82ð\8eæ\93¾
-                       rect := FavoriteTreeView.Selected.DisplayRect(true);
-                       //\83A\83C\83R\83\93\95ª\8d\82É\90L\82Î\82·
-                       rect.Left := rect.Left - FavoriteTreeView.Images.Width;
-                       if ((X >= rect.Left) and (X <= rect.Right)) and
-                               ((Y >= rect.Top) and (Y <= rect.Bottom)) then begin
-                               FavoriteClick( TObject( FavoriteTreeView.Selected ) );
-                       end;
+       if (Button = mbLeft) and not (ssDouble  in Shift) then begin
+               if (FClickNode = FavoriteTreeView.Selected) then begin
+{$IFDEF DEBUG}
+               Writeln('FVMouseUp');
+{$ENDIF}
+                       FavoriteClick( TObject( FClickNode ) );
                end;
        end;
 end;
@@ -7812,7 +7810,7 @@ procedure TGikoForm.InitActionChecked();
 begin
        //\83\8d\83O\83C\83\93\8fó\91Ô\82ð\8dÄ\90Ý\92è
        GikoDM.LoginAction.Checked := GikoDM.LoginAction.Checked;
-    //\83~\83\85\81[\83g\82Ì\8fó\91Ô\82ð\90Ý\92è
+       //\83~\83\85\81[\83g\82Ì\8fó\91Ô\82ð\90Ý\92è
        GikoDM.MuteAction.Checked := GikoSys.Setting.Mute;
 
        //\83X\83\8c\91S\95\94\95\\8e¦\83{\83^\83\93\82ð\89\9f\82³\82ê\82½\8fó\91Ô\82É\82·\82é
@@ -7858,6 +7856,63 @@ begin
                end;
        end;
 end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83N\83\8a\83b\83N\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.FavoriteTreeViewClick(Sender: TObject);
+begin
+{$IFDEF DEBUG}
+               Writeln('FVClick');
+{$ENDIF}
+       //\8c»\8dÝ\91I\91ð\82³\82ê\82Ä\82¢\82é\83A\83C\83e\83\80\82ð\95Û\91
+       FClickNode := FavoriteTreeView.Selected;
+end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83A\83C\83e\83\80\82Ì\8fk\8f¬\8e\9e\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.FavoriteTreeViewCollapsing(Sender: TObject;
+  Node: TTreeNode; var AllowCollapse: Boolean);
+begin
+       //\8fk\8f¬\82³\82ê\82½\82ç\95Û\91\82³\82ê\82Ä\82¢\82é\83N\83\8a\83b\83N\8e\9e\91I\91ð\83A\83C\83e\83\80\82ð\83N\83\8a\83A
+       FClickNode := nil;
+end;
+// *************************************************************************
+//! \82¨\8bC\82É\93ü\82è\83c\83\8a\81[\82Ì\83A\83C\83e\83\80\82Ì\93W\8aJ\8e\9e\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.FavoriteTreeViewExpanding(Sender: TObject;
+  Node: TTreeNode; var AllowExpansion: Boolean);
+begin
+       //\93W\8aJ\82³\82ê\82½\82ç\95Û\91\82³\82ê\82Ä\82¢\82é\83N\83\8a\83b\83N\8e\9e\91I\91ð\83A\83C\83e\83\80\82ð\83N\83\8a\83A
+       FClickNode := nil;
+end;
+// *************************************************************************
+//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83A\83C\83e\83\80\82Ì\8fk\8f¬\8e\9e\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.TreeViewCollapsing(Sender: TObject; Node: TTreeNode;
+  var AllowCollapse: Boolean);
+begin
+       FClickNode := nil;
+end;
+// *************************************************************************
+//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83A\83C\83e\83\80\82Ì\93W\8aJ\8e\9e\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.TreeViewExpanding(Sender: TObject; Node: TTreeNode;
+  var AllowExpansion: Boolean);
+begin
+       FClickNode := nil;
+end;
+// *************************************************************************
+//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83}\83E\83X\83A\83b\83v\83C\83x\83\93\83g
+// *************************************************************************
+procedure TGikoForm.TreeViewMouseUp(Sender: TObject; Button: TMouseButton;
+  Shift: TShiftState; X, Y: Integer);
+begin
+       if (Button = mbLeft) and not (ssDouble in Shift) then begin
+               if (FClickNode = TreeView.Selected) then begin
+                       TreeClick(FClickNode);
+               end;
+       end;
+end;
 
 initialization
                                OleInitialize(nil);