delphi DBGrid获取所选单元格

yws3nbqq  于 2023-08-04  发布在  其他
关注(0)|答案(7)|浏览(339)

我需要在 Delphi 中获取DBGrid的所选单元格的值。
我不知道该怎么做。我试过dbGrid的OnMouseMove

pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);

字符串
[编辑]我可以使用OnCellClick获取带有“Column.Field.AsString”的单元格的值,但我想在点击该行的任何一列时从第一列获取值。

knpiaxh1

knpiaxh11#

找到了
dbGrid.Fields[0].AsString获取所选行的第一列的值。

a6b3iqyw

a6b3iqyw2#

procedure TForm1.DBGrid_DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh;  State: TGridDrawState);
const defaultCheckBoxFieldNumber = 1;
begin
  if DBGrid.SelectedField.FieldNo = defaultCheckBoxFieldNumber then
    ....;
  else
    ...;
end;

字符串
DBGrid.SelectedField.FieldNo获取TDBGrid中事件DrawColumnCell上的选定字段。

fnx2tebb

fnx2tebb3#

我知道这是晚了,不确定这是否是标题的意思。但如果它意味着获取选定的单元格值,那么尝试以下操作:

procedure Form1.dbGrid1CellClick(Column: TColumn);
begin
  ShowMessage(table1.Fields[Column.Index].AsString);
end;

字符串
确保
dbGrid1.Options.dbRowSelect:= False;

0mkxixxg

0mkxixxg4#

我认为最简单的方法是将一个隐藏的DBText连接到数据集,然后设置DBText以显示您需要的字段,这样DBText将始终包含活动记录所需的值

6bc51xsx

6bc51xsx5#

DBGrid没有焦点,因此您无法找出选择了哪一行。请看链接的DataSetDataSet具有活动行。

oiopk7p5

oiopk7p56#

尝试以下操作以获取dbgrid中所选单元格的值:
第一个月

moiiocjp

moiiocjp7#

通过代码获取dbgrid单元格字段名
ShowMessage(DBGrid1.Fields[DBGrid1.SelectedIndex].FieldName);

相关问题