Delphi 将鼠标移到dbgrid';书名

Delphi 将鼠标移到dbgrid';书名,delphi,delphi-2010,tdbgrid,Delphi,Delphi 2010,Tdbgrid,是否有一种方法可以通过将鼠标移到标题上来捕获标题的名称 其思想是使标题名仅在光标移动到标题字段上时可见 提前使用Tnx。要回答这个问题,您需要知道的是 1:鼠标在哪个单元格上(因此是否在标题单元格上) 及 2:字段名(标题) 这两个都是可能的,但不确定如何使用此信息使标题名称可见 1:是捕获OnMouseMove事件并使用MouseCoord属性 2:将使用结果列值(如果行值为0)和字段[ACol].FieldName属性 但是,实现您想要的更直接的方法可能是在选项中设置dgTitleHotTr

是否有一种方法可以通过将鼠标移到标题上来捕获标题的名称

其思想是使标题名仅在光标移动到标题字段上时可见


提前使用Tnx。

要回答这个问题,您需要知道的是

1:鼠标在哪个单元格上(因此是否在标题单元格上)

2:字段名(标题)

这两个都是可能的,但不确定如何使用此信息使标题名称可见

1:是捕获OnMouseMove事件并使用MouseCoord属性

2:将使用结果列值(如果行值为0)和字段[ACol].FieldName属性


但是,实现您想要的更直接的方法可能是在选项中设置dgTitleHotTrack并设置hottrack样式(可能必须是自定义样式)。

下面的代码显示了如何获取鼠标指针所在网格列的“标题”

实际上,TDBGrid列的列标题中显示的是该列的
Title
对象的
Caption
属性,该对象还具有其他属性。下面的代码读取并显示
标题
标题
属性

从联机帮助中可以看到,作为网格列的TColumn对象还具有
字段
字段名
属性,您可以根据需要读取这些属性

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y:
    Integer);
var
  Col,
  Row : Integer;
begin
  Col := DBGrid1.MouseCoord(X, Y).X;
  Row := DBGrid1.MouseCoord(X, Y).Y;
  Caption := Format('Col: %d, Row:%d', [Col, Row]);
  if (Col > 0) and (Col <= DBGrid1.Columns.Count) then
    Caption := Caption + DBGrid1.Columns[Col - 1].Title.Caption;
end;
过程TForm1.DBGrid1MouseMove(发送方:TObject;Shift:TShiftState;X,Y:
整数);
变量
上校,
行:整数;
开始
Col:=DBGrid1.MouseCoord(X,Y).X;
行:=DBGrid1.MouseCoord(X,Y).Y;
标题:=格式('Col:%d,Row:%d',[Col,Row]);

if(Col>0)和(Col)不确定这是如何回答这个问题的。对我来说,这更像是一个冗长的评论。