From bf6b268d1a556036453cb53a252b3e4241f0205c Mon Sep 17 00:00:00 2001 From: h677 Date: Thu, 24 Nov 2005 16:19:28 +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=A7=E3=81=AE=E3=82=AF=E3=83=AA=E3=83=83=E3=82=AF?= =?utf8?q?=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E3=81=AE=E6=8A=91=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Giko.dfm | 10 ++++- Giko.pas | 153 +++++++++++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 112 insertions(+), 51 deletions(-) diff --git a/Giko.dfm b/Giko.dfm index be7df15..eb6aabb 100644 --- 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 diff --git a/Giko.pas b/Giko.pas index 5d52f4a..13a6629 100644 --- 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 éŒ¾ } FSortIndex: Integer; @@ -589,7 +600,7 @@ type FStartUp : Boolean; FIsHandledWheel : Boolean; ///< Šù‚Ɏ󂯎æ‚Á‚½ WM_MOUSEWHEEL ‚©‚Ç‚¤‚© DiffComp: Boolean; //Add by Genyakun ƒXƒŒ‚ªXV‚³‚ꂽ‚Æ‚«‚ÉTrue‚É‚È‚é - FOrigenCaption: String; //‚¨‹C‚É“ü‚èƒcƒŠ[‚̃AƒCƒeƒ€•ÒWŽž‚̕ҏW‘O‚Ì•¶Žš—ñ + FOrigenCaption: String; //‚¨‹C‚É“ü‚èƒcƒŠ[‚̃AƒCƒeƒ€•ÒWŽž‚̕ҏW‘O‚Ì•¶Žš—ñ 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; - +// ************************************************************************* +//! ƒcƒŠ[ƒrƒ…[‚̃_ƒuƒ‹ƒNƒŠƒbƒNƒCƒxƒ“ƒg +// ************************************************************************* 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; - +// ************************************************************************* +//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃_ƒuƒ‹ƒNƒŠƒbƒNƒCƒxƒ“ƒg +// ************************************************************************* 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); - //‘I‘ð‚µ‚½ƒAƒCƒeƒ€‚Æ“¯‚¶‚©ƒ`ƒFƒbƒN - if item = FavoriteTreeView.Selected then begin - //•\Ž¦‚µ‚Ä‚¢‚é”͈͂Ɠ¯‚¶‚Æ‚±‚ë‚©ƒ`ƒFƒbƒN - rect := item.DisplayRect(true); - //ƒCƒ[ƒW•ª¶‚ɐL‚΂· - 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; + //ƒNƒŠƒbƒNŽž‚Ì‘I‘ðƒCƒxƒ“ƒg‚Æ“¯‚¶‚È‚çƒ_ƒuƒ‹ƒNƒŠƒbƒNŽÀs + 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; + //Œ»Ý•\Ž¦‚µ‚Ä‚¢‚é‚Ì‚Æ“¯‚¶‚È‚çÄ•`‰æ‚µ‚È‚¢ + 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; - +// ************************************************************************* +//! ƒcƒŠ[ƒrƒ…[‚̃NƒŠƒbƒNƒCƒxƒ“ƒg +// ************************************************************************* 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; - +// ************************************************************************* +//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃}ƒEƒXƒAƒbƒvƒCƒxƒ“ƒg +// ************************************************************************* 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 - //ƒCƒ[ƒW”͈͂ðŽæ“¾ - rect := FavoriteTreeView.Selected.DisplayRect(true); - //ƒAƒCƒRƒ“•ª¶‚ɐL‚΂· - 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 //ƒƒOƒCƒ“ó‘Ô‚ðÄÝ’è GikoDM.LoginAction.Checked := GikoDM.LoginAction.Checked; - //ƒ~ƒ…[ƒg‚̏ó‘Ô‚ðÝ’è + //ƒ~ƒ…[ƒg‚̏ó‘Ô‚ðÝ’è GikoDM.MuteAction.Checked := GikoSys.Setting.Mute; //ƒXƒŒ‘S•”•\Ž¦ƒ{ƒ^ƒ“‚ð‰Ÿ‚³‚ꂽó‘Ô‚É‚·‚é @@ -7858,6 +7856,63 @@ begin end; end; end; +// ************************************************************************* +//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃NƒŠƒbƒNƒCƒxƒ“ƒg +// ************************************************************************* +procedure TGikoForm.FavoriteTreeViewClick(Sender: TObject); +begin +{$IFDEF DEBUG} + Writeln('FVClick'); +{$ENDIF} + //Œ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚éƒAƒCƒeƒ€‚ð•Û‘¶ + FClickNode := FavoriteTreeView.Selected; +end; +// ************************************************************************* +//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃AƒCƒeƒ€‚̏k¬ŽžƒCƒxƒ“ƒg +// ************************************************************************* +procedure TGikoForm.FavoriteTreeViewCollapsing(Sender: TObject; + Node: TTreeNode; var AllowCollapse: Boolean); +begin + //k¬‚³‚ꂽ‚ç•Û‘¶‚³‚ê‚Ä‚¢‚éƒNƒŠƒbƒNŽž‘I‘ðƒAƒCƒeƒ€‚ðƒNƒŠƒA + FClickNode := nil; +end; +// ************************************************************************* +//! ‚¨‹C‚É“ü‚èƒcƒŠ[‚̃AƒCƒeƒ€‚Ì“WŠJŽžƒCƒxƒ“ƒg +// ************************************************************************* +procedure TGikoForm.FavoriteTreeViewExpanding(Sender: TObject; + Node: TTreeNode; var AllowExpansion: Boolean); +begin + //“WŠJ‚³‚ꂽ‚ç•Û‘¶‚³‚ê‚Ä‚¢‚éƒNƒŠƒbƒNŽž‘I‘ðƒAƒCƒeƒ€‚ðƒNƒŠƒA + FClickNode := nil; +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 = TreeView.Selected) then begin + TreeClick(FClickNode); + end; + end; +end; initialization OleInitialize(nil); -- 2.11.0