使用DataSource.DataSet.RecNo可以得到dbgrid选中的是第几行,示例代码如下:
procedure TForm1.btn1Click(Sender: TObject);
begin
ShowMessage(IntToStr(dbgrd1.DataSource.DataSet.RecNo));
end;
效果如下:
dbgrid是数据感知控件,它的后面一定有绑定数据集的。当你在界面上通过鼠标或方向键改变当前行的时候,后台数据集的当前记录就会自动变化。所以,你不需要了解当前选中的是第几行,你只要心里清楚数据集的当前记录与dbgrid当前选中行是一致的就行了;操作当前行,就是要去操作数据集的当前记录。
先用ADOQuery连接数据库在DBgrid内显示出来~~~~之后在DBgrid的OnCellClick事件写如下代码
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
self.Edit1.Text:= inttostr(Column.ID); //列号
self.Edit2.Text:= inttostr(self.ADOQuery1.RecNo); //行号
end;
DBGrid1.SelectedIndex // 为当前选中的第几行的索引