delphi中选择行获取dbgrid值是用 oncellclick事件,但用键盘上的方向键选中行却没法获取值

2025-03-01 18:13:46
推荐回答(1个)
回答1:

delphi 的 AdoQurey 与 dbgrid 是数据感知控件,即当在 dbgrid 中移动行时,与之相关联的的 adoQuery 记录指针也会相应移动。


上面的 edit 控件可以用 dbEdit 控件代替,可以即时的反映出数据记录的变化,可以节省代码。


如果想响应记录行的变化,可以考虑直接在 adoQuery 的事件中,选择响应的事件,比如:OnAfterScroll 事件。


示例代码如下:


procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  Edit1.Text := ADOQuery1.FieldByName('articleid').AsString;
  Edit2.Text := ADOQuery1.FieldByName('typeid').AsString;
end;