delphi – 与Firemonkey MouseToCell等效
发布时间:2020-12-15 09:36:52 所属栏目:大数据 来源:网络整理
导读:在Delphi VCL中如果我想查看我的鼠标悬停在TStringGrid的哪个单元格(列和行),我会使用MouseToCell.对于FireMonkey应用程序,此方法不再适用于Delphi(XE2).有谁知道我怎么能确定我的鼠标结束的细胞? OnMouseMove有X Y值但这些是屏幕坐标而不是单元格坐标. 非
在Delphi VCL中如果我想查看我的鼠标悬停在TStringGrid的哪个单元格(列和行),我会使用MouseToCell.对于FireMonkey应用程序,此方法不再适用于Delphi(XE2).有谁知道我怎么能确定我的鼠标结束的细胞? OnMouseMove有X& Y值但这些是屏幕坐标而不是单元格坐标.
非常感谢. 解决方法
在TCustomGrid中实际上有一个MouseToCell方法,StringGrid下降,但它是私有的.从它的来源来看,它使用了ColumnByPoint和RowByPoint方法,幸运的是它们是公开的.
‘column’返回TColumn,如果没有列,则返回nil. ‘row’返回一个正整数,或者当没有行时返回-1.此外,第一行不关心行数,它只考虑行高并基于此返回行号,即使没有行.此外,我应该注意,网格标题上的行为是错误的.无论如何,示例示例可能如下: procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Single); var Col: TColumn; C,R: Integer; begin Col := StringGrid1.ColumnByPoint(X,Y); if Assigned(Col) then C := Col.Index else C := -1; R := StringGrid1.RowByPoint(X,Y); Caption := Format('Col:%d Row:%d',[C,R]); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |