2009-11-30 153 views
2

我需要在Delphi中获取DBGrid的选定单元格的值。DBGrid获取选定的单元格

我不知道该怎么做。我试图DBGRID的的OnMouseMove

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

[编辑] 我可以使用OnCellClick获得与“Column.Field.AsString”单元格的值,但我想从第一列中的值,当我点击在该行的任何列上。

回答

6

找到它。

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

1

A DBGrid没有焦点,因此你不能找出哪一行被选择。请看链接的DataSet。 A DataSet有一个活动行。

1

我认为最简单的方法是连接一个隐藏数据库文本资料集,然后设置数据库文本,以显示你需要的领域,这种方式,数据库文本总是包含当前记录的所需值

3
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.FieldNoTDBGrid的事件DrawColumnCell中获取选定字段。

0

我知道这是迟到,不知道标题是什么意思。 但如果这意味着获取所选单元格的值,那么试试这个:

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

确保
dbGrid1.Options.dbRowSelect:= FALSE;

0

试试这个让DBGrid的中选定单元格的值:

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

相关问题