怎样向DBGrid的一个Cell中编程设置数据?(50分)

  • 主题发起人 主题发起人 xiatianyun
  • 开始时间 开始时间
X

xiatianyun

Unregistered / Unconfirmed
GUEST, unregistred user!
用户从ComboBox中选择数据后要向该Cell中填写,我用以下代码做但一些意想不到的后果,比如
如果DBGrid没有将当前记录post就用dataset.first就出错。请问正确的解法?
with dataset1 do
begin
edit;
fieldbyname('zd').value :=ComboBox1.items[combobox1.itemindex];//zd类型为string.
end;
 
with dataset1 do
begin
edit;
fieldbyname('zd').value :=ComboBox1.items[combobox1.itemindex];//zd类型为string.
post;
end;
 
我想让DBGrid本身完成post的工作。这里要做的仅仅相当于用户直接在Cell中输入数据一样。
 
在相应 Table 的 BeforeScroll 中处理:
procedure TForm1.Table1BeforeScroll(DataSet: TDataSet);
begin
if DataSet.State=dsEdit then DataSet.Post;
end;
 
从上面的讨论中可以看到,自己编写post是可以的,但如何实现我要的功能呢?也就是让DBGrid自身去完成post。
to jsxjd: 如果不发生BeforeScrooll event呢?例如编辑了当前记录又没有把焦点移到其它行而是点击了其它控件。
 
在 OnExit 中 post 一下。
 
后退
顶部