我正在使用 TGrid 类在 XE4 中编写 FMX 程序。我想从我在 TGrid 中双击的行的特定列中提取值。网格加载了数据库表中的字符串(使用实时绑定)。
例如,假设 TGrid 显示 5rows x 10columns,我对第 9 列中的值感兴趣。如果我双击第 2 行中的任意位置,我希望将 cell(row=2, col=9) 的值放入在 TEdit 中。
我可能会简单地看待事物,但在 TGrid 中我没有找到任何可以根据其(行,列)获取单元格值的函数。
我正在使用 TGrid 类在 XE4 中编写 FMX 程序。我想从我在 TGrid 中双击的行的特定列中提取值。网格加载了数据库表中的字符串(使用实时绑定)。
例如,假设 TGrid 显示 5rows x 10columns,我对第 9 列中的值感兴趣。如果我双击第 2 行中的任意位置,我希望将 cell(row=2, col=9) 的值放入在 TEdit 中。
我可能会简单地看待事物,但在 TGrid 中我没有找到任何可以根据其(行,列)获取单元格值的函数。
您可以使用受保护的方法GetValue
。
function GetValue(Col, Row: Integer): TValue; virtual;
然后使用ColumnIndex
andSelected
属性可以获得当前的 col 和 row。
尝试这个
type
TGridClass=class(TGrid);
procedure TForm1.Grid1DblClick(Sender: TObject);
begin
ShowMessage(TGridClass(Sender).GetValue(TGrid(Sender).ColumnIndex, TGrid(Sender).Selected).ToString);
end;
或者你可以使用类似的东西
Grid1.Columns[Col].Controls[Row]