接管DataGrid 的 MouseDown 事件,然后调用 DataGrid 的 GetHitInfo 方法来获取点击信息。
详细情况和参考代码如下:
procedure TSJWG.DataGridMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
lPoint: TPoint;
lHitInfo: TTreeListHitInfo;
begin
lPoint.X := X;
lPoint.Y := Y;
lHitInfo := DataGrid.GetHitInfo(lPoint);
if lHitInfo.hitType = TTreeListHitTest.htSummaryNodeFooter then
begin
jsDialogs.ShowMsg('是分组汇总行。', '');
end;
end;
GetHitInfo 方法原型如下:
function GetHitInfo(Pos: TPoint): TTreeListHitInfo; virtual;
TTreeListHitInfo 是一个结构体类型,原型如下:
TreeListHitInfo = record
X, Y: Integer; // Client
Band: Integer; // VisibleIndex
Column: Integer; // AbsoluteIndex
Node: TTreeListNode;
Row: Integer;
FooterRow: Integer;
hitType: TTreeListHitTest;
end;
TTreeListHitTest 是一个枚举类型,原型如下:
TTreeListHitTest = (htNowhere, htColumn, htColumnEdge, htButton,
htIcon, htStateIcon, htIndent, htLabel, htRight, htOutside,
htGroupPanel, htBandButton, htBand, htBandEdge, htHeaderButton,
htIndicator, htNewRowItem, htSummaryNodeFooter, htSummaryFooter,
htBandPanelEdge, htHeaderPanelEdge, htRowEdge, htPreview,
htStatusPanel); |