From 55a79753fe1f7cfd65e3d5d0da373001a7bc9fe7 Mon Sep 17 00:00:00 2001 From: h677 Date: Fri, 23 Dec 2005 16:39:22 +0000 Subject: [PATCH] =?utf8?q?=E3=82=AD=E3=83=A3=E3=83=93=E3=83=8D=E3=83=83?= =?utf8?q?=E3=83=88=E3=81=AE=E3=81=8A=E6=B0=97=E3=81=AB=E5=85=A5=E3=82=8A?= =?utf8?q?=E3=81=A7=E3=81=AED&D=E3=81=A7=E3=81=AE=E3=82=B9=E3=83=AC?= =?utf8?q?=E3=81=8C=E9=96=8B=E3=81=8F=E4=B8=8D=E5=85=B7=E5=90=88=E3=81=AE?= =?utf8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Giko.dfm | 11 +--- Giko.pas | 168 ++++++++++++++--------------------------------------- GikoDataModule.pas | 12 ++-- 3 files changed, 52 insertions(+), 139 deletions(-) diff --git a/Giko.dfm b/Giko.dfm index 941b88c..cf4678d 100644 --- 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 diff --git a/Giko.pas b/Giko.pas index a48c789..657666f 100644 --- 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 éŒ¾ } FEnabledCloseButton: Boolean; @@ -2224,31 +2212,13 @@ begin ListView.SetFocus; ListView.SelectAll; end; -// ************************************************************************* -//! ƒcƒŠ[ƒrƒ…[‚̃_ƒuƒ‹ƒNƒŠƒbƒNƒCƒxƒ“ƒg -// ************************************************************************* -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 - //ƒ}ƒEƒX‚ªnode‚̏ã‚É‚¢‚é‚© - 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; - +// ************************************************************************* +//! ƒ_ƒEƒ“ƒ[ƒh‚ªŠ®—¹‚µ‚½‚Æ‚«‚É”­¶‚·‚éƒCƒxƒ“ƒg +// ************************************************************************* 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 //•ÒW’†‚ÉESC‚ð‰Ÿ‚µ‚½‚çA•ÒW‚ðI—¹‚µ‚āAŒ³‚Ì•¶Žš—ñ‚É–ß‚· @@ -6243,26 +6212,6 @@ begin end; end; -// ************************************************************************* -//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃_ƒuƒ‹ƒNƒŠƒbƒNƒCƒxƒ“ƒg -// ************************************************************************* -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 - //ƒ}ƒEƒX‚ªnode‚̏ã‚É‚¢‚é‚© - 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; // ************************************************************************* -//! ƒcƒŠ[ƒrƒ…[‚̃NƒŠƒbƒNƒCƒxƒ“ƒg +//! ƒcƒŠ[ƒrƒ…[‚ÌKeyDownƒCƒxƒ“ƒg // ************************************************************************* -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 - //Œ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚ð•Û‘¶ - 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 + //ƒ}ƒEƒX‚ªnode‚̏ã‚É‚¢‚é‚© + 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; // ************************************************************************* -//! ƒcƒŠ[ƒrƒ…[‚̃AƒCƒeƒ€‚̏k¬ŽžƒCƒxƒ“ƒg -// ************************************************************************* -procedure TGikoForm.TreeViewCollapsing(Sender: TObject; Node: TTreeNode; - var AllowCollapse: Boolean); -begin - FClickNode := nil; -end; -// ************************************************************************* -//! ƒcƒŠ[ƒrƒ…[‚̃AƒCƒeƒ€‚Ì“WŠJŽžƒCƒxƒ“ƒg -// ************************************************************************* -procedure TGikoForm.TreeViewExpanding(Sender: TObject; Node: TTreeNode; - var AllowExpansion: Boolean); -begin - FClickNode := nil; -end; -// ************************************************************************* -//! ƒcƒŠ[ƒrƒ…[‚̃}ƒEƒXƒAƒbƒvƒCƒxƒ“ƒg -// ************************************************************************* -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; -// ************************************************************************* //! ƒ_ƒEƒ“ƒ[ƒhƒRƒ“ƒgƒ[ƒ‹ƒXƒŒƒbƒh‚̐¶¬ // ************************************************************************* procedure TGikoForm.CreateControlThread(); @@ -7796,42 +7726,32 @@ begin except end; end; -//! ƒhƒ‰ƒbƒOƒXƒ^[ƒgƒCƒxƒ“ƒg -procedure TGikoForm.FavoriteTreeViewStartDrag(Sender: TObject; - var DragObject: TDragObject); -begin - FClickNode := nil; -end; -//MouseMove‚ŃNƒŠƒbƒNƒCƒxƒ“ƒg‚ð‹N‚±‚·‚Æ‚¢‚¤‹CŽˆ«‚¢ŽÀ‘•... -procedure TGikoForm.FavoriteTreeViewMouseMove(Sender: TObject; - Shift: TShiftState; X, Y: Integer); +//! ƒLƒƒƒrƒlƒbƒg‚̃}ƒEƒXƒ_ƒEƒ“ƒCƒxƒ“ƒg +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 - //ƒNƒŠƒbƒNŽž‚Ì‘I‘ðƒCƒxƒ“ƒg‚Æ“¯‚¶‚È‚çƒ_ƒuƒ‹ƒNƒŠƒbƒNŽÀs - pos := FMouseDownPos; - if (FClickNode = FavoriteTreeView.GetNodeAt(pos.X, pos.Y)) then begin - //ƒ}ƒEƒX‚ªnode‚̏ã‚É‚¢‚é‚© - 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‚ª‘±‚­‚©‚à‚µ‚ê‚È‚¢‚Ì‚ÅFClickNod‚̓NƒŠƒA‚µ‚È‚¢ - end else begin - FClickNode := nil; + case Button of + mbLeft: + begin + if (TreeView.Selected <> nil) and + (TreeView.Selected = TreeView.GetNodeAt(X, Y)) then begin + //ƒ}ƒEƒX‚ªnode‚̏ã‚É‚¢‚é‚© + rect := TreeView.Selected.DisplayRect(true); + if ((rect.Left <= X) and (rect.Right >= X)) and + ((rect.Bottom >= Y) and (rect.Top <= Y)) then begin + // ƒNƒŠƒbƒN‚ƃ_ƒuƒ‹ƒNƒŠƒbƒN‚ðƒRƒR‚Å”»’è + 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; -//! ƒNƒŠƒbƒN‚µ‚½ƒAƒCƒeƒ€‚ªŽc‚Á‚Ä‚¢‚é‚Ì‚ðÁ‚· -procedure TGikoForm.FavoriteTreeViewExit(Sender: TObject); -begin - FClickNode := nil; -end; initialization OleInitialize(nil); diff --git a/GikoDataModule.pas b/GikoDataModule.pas index b1a7ef5..797af22 100644 --- a/GikoDataModule.pas +++ b/GikoDataModule.pas @@ -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; -- 2.11.0