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