OSDN Git Service

キャビネットのお気に入りでのD&Dでのスレが開く不具合の修正
authorh677 <h677>
Fri, 23 Dec 2005 16:39:22 +0000 (16:39 +0000)
committerh677 <h677>
Fri, 23 Dec 2005 16:39:22 +0000 (16:39 +0000)
Giko.dfm
Giko.pas
GikoDataModule.pas

index 941b88c..cf4678d 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -98,7 +98,6 @@ object GikoForm: TGikoForm
           Height = 167
           BorderStyle = bsNone
           ChangeDelay = 50
-          DragMode = dmAutomatic
           HideSelection = False
           Images = ItemIcon16
           Indent = 19
@@ -107,16 +106,12 @@ object GikoForm: TGikoForm
           RightClickSelect = True
           ShowRoot = False
           TabOrder = 0
-          OnClick = TreeViewClick
           OnCollapsed = TreeViewCollapsed
-          OnCollapsing = TreeViewCollapsing
           OnCustomDraw = TreeViewCustomDraw
           OnCustomDrawItem = TreeViewCustomDrawItem
-          OnDblClick = TreeViewDblClick
-          OnExpanding = TreeViewExpanding
           OnExpanded = TreeViewExpanded
           OnKeyDown = TreeViewKeyDown
-          OnMouseUp = TreeViewMouseUp
+          OnMouseDown = TreeViewMouseDown
         end
         object Panel3: TPanel
           Left = 0
@@ -231,17 +226,13 @@ object GikoForm: TGikoForm
           RightClickSelect = True
           ShowRoot = False
           TabOrder = 3
-          OnDblClick = FavoriteTreeViewDblClick
           OnDragDrop = FavoriteTreeViewDragDrop
           OnDragOver = FavoriteTreeViewDragOver
           OnEdited = FavoriteTreeViewEdited
           OnEditing = FavoriteTreeViewEditing
           OnEndDrag = FavoriteTreeViewEndDrag
-          OnExit = FavoriteTreeViewExit
           OnKeyDown = FavoriteTreeViewKeyDown
           OnMouseDown = FavoriteTreeViewMouseDown
-          OnMouseMove = FavoriteTreeViewMouseMove
-          OnStartDrag = FavoriteTreeViewStartDrag
         end
         object FavoriteToolBar: TToolBar
           Left = 0
index a48c789..657666f 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -423,7 +423,6 @@ type
                procedure TreeViewCustomDrawItem(Sender: TCustomTreeView;
                        Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
                procedure TreeViewExpanded(Sender: TObject; Node: TTreeNode);
-               procedure TreeViewDblClick(Sender: TObject);
                procedure ListViewCustomDraw(Sender: TCustomListView;
                        const ARect: TRect; var DefaultDraw: Boolean);
                procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
@@ -495,7 +494,6 @@ type
                procedure FavoriteTreeViewKeyDown(Sender: TObject; var Key: Word;
                        Shift: TShiftState);
                procedure FavoriteTreePopupMenuPopup(Sender: TObject);
-               procedure FavoriteTreeViewDblClick(Sender: TObject);
                procedure LinkToolBarDragDrop(Sender, Source: TObject; X, Y: Integer);
                procedure BrowserTabMouseUp(Sender: TObject; Button: TMouseButton;
                        Shift: TShiftState; X, Y: Integer);
@@ -514,7 +512,6 @@ type
       var Handled: Boolean);
     procedure BrowserTabPopupMenuPopup(Sender: TObject);
     procedure BrowserTabResize(Sender: TObject);
-       procedure TreeViewClick(Sender: TObject);
     procedure TreeViewKeyDown(Sender: TObject; var Key: Word;
       Shift: TShiftState);
     procedure FavoriteTreeViewMouseDown(Sender: TObject;
@@ -542,17 +539,8 @@ type
          var Handled: Boolean);
     procedure GikoApplicationEventsDeactivate(Sender: TObject);
     procedure GikoApplicationEventsException(Sender: TObject; E: Exception);
-       procedure TreeViewCollapsing(Sender: TObject; Node: TTreeNode;
-      var AllowCollapse: Boolean);
-    procedure TreeViewExpanding(Sender: TObject; Node: TTreeNode;
-      var AllowExpansion: Boolean);
-    procedure TreeViewMouseUp(Sender: TObject; Button: TMouseButton;
+    procedure TreeViewMouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);
-    procedure FavoriteTreeViewStartDrag(Sender: TObject;
-      var DragObject: TDragObject);
-    procedure FavoriteTreeViewMouseMove(Sender: TObject;
-      Shift: TShiftState; X, Y: Integer);
-    procedure FavoriteTreeViewExit(Sender: TObject);
        private
                { Private \90é\8c¾ }
                FEnabledCloseButton: Boolean;
@@ -2224,31 +2212,13 @@ 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
-       pos : TPoint;
-       rect: TRect;
-begin
-       pos := FMouseDownPos;
-       if (FClickNode <> nil) and (FClickNode = TreeView.GetNodeAt(pos.X, pos.Y)) then begin
-               //\83}\83E\83X\82ªnode\82Ì\8fã\82É\82¢\82é\82©
-               rect := FClickNode.DisplayRect(true);
-               if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and
-                       ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin
-                       TreeDoubleClick( FClickNode );
-                       FClickNode := nil;
-               end;
-       end;
-end;
-
 procedure TGikoForm.DownloadMsg(Sender: TObject; Item: TDownloadItem; Msg: string; Icon: TGikoMessageIcon);
 begin
        AddMessageList(Msg, nil, Icon);
 end;
-
+// *************************************************************************
+//! \83_\83E\83\93\83\8d\81[\83h\82ª\8a®\97¹\82µ\82½\82Æ\82«\82É\94­\90\82·\82é\83C\83x\83\93\83g
+// *************************************************************************
 procedure TGikoForm.DownloadEnd(Sender: TObject; Item: TDownloadItem);
 var
        ATitle: string;
@@ -4447,9 +4417,7 @@ end;
 
 procedure TGikoForm.FavoriteClick(Sender: TObject);
 begin
-
        FavoriteClick( Sender, True );
-
 end;
 
 procedure TGikoForm.FavoriteClick(Sender: TObject; ActiveTab: Boolean);
@@ -6110,7 +6078,8 @@ begin
                        FavoriteTreeView.Selected.Expanded := not FavoriteTreeView.Selected.Expanded;
                        end;
                VK_SPACE:
-                       FavoriteTreeViewDblClick( Sender );
+                       GikoDM.FavoriteTreeViewReloadActionExecute(
+                                                       TObject(FavoriteTreeView.Selected));
                end;
        end else begin
                //\95Ò\8fW\92\86\82ÉESC\82ð\89\9f\82µ\82½\82ç\81A\95Ò\8fW\82ð\8fI\97¹\82µ\82Ä\81A\8c³\82Ì\95\8e\9a\97ñ\82É\96ß\82·
@@ -6243,26 +6212,6 @@ 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
-       pos : TPoint;
-       rect: TRect;
-begin
-       pos := FMouseDownPos;
-       if (FClickNode <> nil) and (FClickNode = FavoriteTreeView.GetNodeAt(pos.X, pos.Y)) then begin
-               //\83}\83E\83X\82ªnode\82Ì\8fã\82É\82¢\82é\82©
-               rect := FClickNode.DisplayRect(true);
-               if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and
-                       ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin
-                       GikoDM.FavoriteTreeViewReloadActionExecute( Sender );
-                       FClickNode := nil;
-               end;
-       end;
-end;
-
 function TGikoForm.TreeNodeDataFind(Node: TTreeNode; FindPointer: Pointer): TTreeNode;
 var
        Found: TTreeNode;
@@ -6693,13 +6642,8 @@ begin
 
 end;
 // *************************************************************************
-//! \83c\83\8a\81[\83r\83\85\81[\82Ì\83N\83\8a\83b\83N\83C\83x\83\93\83g
+//! \83c\83\8a\81[\83r\83\85\81[\82ÌKeyDown\83C\83x\83\93\83g
 // *************************************************************************
-procedure TGikoForm.TreeViewClick(Sender: TObject);
-begin
-       FClickNode := TreeView.Selected;
-       FMouseDownPos := TreeView.ScreenToClient(Mouse.CursorPos);
-end;
 procedure TGikoForm.TreeViewKeyDown(Sender: TObject; var Key: Word;
        Shift: TShiftState);
 begin
@@ -6718,13 +6662,27 @@ procedure TGikoForm.FavoriteTreeViewMouseDown(Sender: TObject;
 var
        favItem                         : TTreeNode;
        favThreadItem   : TFavoriteThreadItem;
+       rect: TRect;
 begin
        case Button of
        mbLeft:
                begin
-                       //\8c»\8dÝ\91I\91ð\82³\82ê\82Ä\82¢\82é\83A\83C\83e\83\80\82ð\95Û\91
-                       FClickNode := FavoriteTreeView.Selected;
-                       FMouseDownPos := FavoriteTreeView.ScreenToClient(Mouse.CursorPos);
+                       if not (ssAlt in Shift) and (FavoriteTreeView.Selected <> nil) and 
+                               (FavoriteTreeView.Selected = FavoriteTreeView.GetNodeAt(X, Y)) then begin
+                               //\83}\83E\83X\82ªnode\82Ì\8fã\82É\82¢\82é\82©
+                               rect := FavoriteTreeView.Selected.DisplayRect(true);
+                               if ((rect.Left <= X) and (rect.Right >= X)) and
+                                       ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin
+                                       if ssDouble in Shift then begin
+                                               GikoDM.FavoriteTreeViewReloadActionExecute(
+                                                       TObject(FavoriteTreeView.Selected));
+
+                                       end else begin
+                                               FavoriteClick(
+                                                       TObject(FavoriteTreeView.Selected));
+                                       end;
+                               end;
+                       end;
                end;
        mbMiddle:
                begin
@@ -7661,34 +7619,6 @@ begin
        end;
 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 <> nil) and (FClickNode = TreeView.GetNodeAt(X, Y)) then begin
-                       TreeClick(FClickNode);
-               end;
-       end;
-end;
-// *************************************************************************
 //! \83_\83E\83\93\83\8d\81[\83h\83R\83\93\83g\83\8d\81[\83\8b\83X\83\8c\83b\83h\82Ì\90\90¬
 // *************************************************************************
 procedure TGikoForm.CreateControlThread();
@@ -7796,42 +7726,32 @@ begin
        except
        end;
 end;
-//! \83h\83\89\83b\83O\83X\83^\81[\83g\83C\83x\83\93\83g
-procedure TGikoForm.FavoriteTreeViewStartDrag(Sender: TObject;
-  var DragObject: TDragObject);
-begin
-       FClickNode := nil;
-end;
-//MouseMove\82Å\83N\83\8a\83b\83N\83C\83x\83\93\83g\82ð\8bN\82±\82·\82Æ\82¢\82¤\8bC\8e\9d\88«\82¢\8eÀ\91\95...
-procedure TGikoForm.FavoriteTreeViewMouseMove(Sender: TObject;
-  Shift: TShiftState; X, Y: Integer);
+//! \83L\83\83\83r\83l\83b\83g\82Ì\83}\83E\83X\83_\83E\83\93\83C\83x\83\93\83g
+procedure TGikoForm.TreeViewMouseDown(Sender: TObject;
+  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 var
-       pos : TPoint;
-       rect: TRect;
+       rect : TRect;
 begin
-       if (FClickNode <> nil) then begin
-               //\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
-               pos := FMouseDownPos;
-               if (FClickNode = FavoriteTreeView.GetNodeAt(pos.X, pos.Y)) then begin
-                       //\83}\83E\83X\82ªnode\82Ì\8fã\82É\82¢\82é\82©
-                       rect := FClickNode.DisplayRect(true);
-                       if ((rect.Left <= pos.X) and (rect.Right >= pos.X)) and
-                               ((rect.Bottom >= pos.Y) and (rect.Top <= pos.Y)) then begin
-                               FavoriteClick( TObject( FClickNode ) );
-                               //DBClick\82ª\91±\82­\82©\82à\82µ\82ê\82È\82¢\82Ì\82ÅFClickNod\82Í\83N\83\8a\83A\82µ\82È\82¢
-                       end else begin
-                               FClickNode := nil;
+       case Button of
+       mbLeft:
+               begin
+                       if (TreeView.Selected <> nil) and
+                               (TreeView.Selected = TreeView.GetNodeAt(X, Y)) then begin
+                               //\83}\83E\83X\82ªnode\82Ì\8fã\82É\82¢\82é\82©
+                               rect := TreeView.Selected.DisplayRect(true);
+                               if ((rect.Left <= X) and (rect.Right >= X)) and
+                                       ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin
+                    // \83N\83\8a\83b\83N\82Æ\83_\83u\83\8b\83N\83\8a\83b\83N\82ð\83R\83R\82Å\94»\92è
+                                       if ssDouble in Shift then begin
+                                               TreeDoubleClick( TreeView.Selected );
+                                       end else begin
+                                               TreeClick(TreeView.Selected);
+                                       end;
+                               end;
                        end;
-               end else begin
-                       FClickNode := nil;
                end;
        end;
 end;
-//! \83N\83\8a\83b\83N\82µ\82½\83A\83C\83e\83\80\82ª\8ec\82Á\82Ä\82¢\82é\82Ì\82ð\8fÁ\82·
-procedure TGikoForm.FavoriteTreeViewExit(Sender: TObject);
-begin
-       FClickNode := nil;
-end;
 
 initialization
                                OleInitialize(nil);
index b1a7ef5..797af22 100644 (file)
@@ -700,19 +700,21 @@ var
        Board: TBoard;
        FavBoard: TFavoriteBoardItem;
        shiftDown: Boolean;
+       Node : TTreeNode;
 begin
+       if (Sender = nil) or not (Sender is TTreeNode) then Exit;
 
-       if GikoForm.ClickNode = nil then Exit;
+       Node := TTreeNode(Sender);
 
        shiftDown := GetAsyncKeyState(VK_SHIFT) = Smallint($8001);
 
-       if TObject( GikoForm.ClickNode.Data ) is TFavoriteThreadItem then begin
-               FavThread := TFavoriteThreadItem( GikoForm.ClickNode.Data );
+       if TObject( Node.Data ) is TFavoriteThreadItem then begin
+               FavThread := TFavoriteThreadItem( Node.Data );
                ThreadItem := FavThread.Item;
                if ThreadItem <> nil then
                        GikoForm.DownloadContent(ThreadItem, shiftDown);
-       end else if TObject( GikoForm.ClickNode.Data ) is TFavoriteBoardItem then begin
-               FavBoard := TFavoriteBoardItem( GikoForm.ClickNode.Data );
+       end else if TObject( Node.Data ) is TFavoriteBoardItem then begin
+               FavBoard := TFavoriteBoardItem( Node.Data );
                Board := FavBoard.Item;
                GikoForm.DownloadList(Board, shiftDown);
        end;