我需要在 Delphi 中获取 DBGrid 的选定单元格的值。
我不知道该怎么做。我试过 dbGrid 的 OnMouseMove
pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);
[已编辑] 我可以使用 OnCellClick 来获取具有“Column.Field.AsString”的单元格的值,但是当我单击该行的任何列时,我想从第一列获取值。
找到了。
dbGrid.Fields[0].AsString
获取所选行的第一列的值。
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
获取事件DrawColumnCell
中的选定字段TDBGrid
。
我知道这已经晚了,不确定这是否是标题的意思。但如果这意味着获取选定的单元格值,那么试试这个:
procedure Form1.dbGrid1CellClick(Column: TColumn);
begin
ShowMessage(table1.Fields[Column.Index].AsString);
end;
确保
dbGrid1.Options.dbRowSelect := False;
ADBGrid
没有焦点,因此您无法找出选择了哪一行。而是查看链接的DataSet
. ADataSet
有一个活动行。
我认为最简单的方法是将隐藏的 DBText 连接到您的数据集,然后设置 DBText 以显示您需要的字段,这样 DBText 将始终包含活动记录所需的值
试试这个来获取 dbgrid 中选定单元格的值:
procedure Form1.dbGrid1CellClick(Column: TColumn);
begin
ShowMessage(table1.Fields[DBGrid1.SelectedIndex].AsString);
end;