怎么可以使得DBGrid中的某一列有下拉列表框,这一列可以由这个下拉列表框来赋值(50分)

  • 主题发起人 主题发起人 searoom
  • 开始时间 开始时间
S

searoom

Unregistered / Unconfirmed
GUEST, unregistred user!
而且我希望这个下拉列表框的值来自另外一个表的值,也就是在程序运行时可以动态改变
因为如果直接给picklist赋值的话,太死板了,不灵活
 
你说的情况用DBGrid实现不太好,而应该在Table或Query中加入一个
新的查询字段(用来查询外表),双击Table或Query可通过Add菜单加入一LookUp字段 
动态改变查询表的主表的keyfield(主表中要查外表的字段名)和外表的LookUpKey,
ResultField可实现更大灵活性,能够实现完全动态。
但delphi自带的Table和Query不太好用,最好用Inforpower中的数据库控件,效果会更好/
 
DBGrid1.Columns.PickList
也是可以在运行时期改变的。
操作于ComboBox类似。
 
用inforpower3000,很简单,而且看里面demo就有你要的。
 
同意bubble
 
三石 兄说的好像和我的问题有点出入!

我试试动态改变picklist的值吧
 
在dbgrid的数据源(table或,query)的字段中增加一lookup字段,
设置其lookupdataset为另外一个表
 
bubble说得没错,不过运行的时候,那个下拉框让人感觉很不爽,searoom你可以试试
 
请参见我的一段小程序:
with self.adoquery1 do begin
sql.clear;
sql.add('select zd from biao where conditon1');
open;
first;
while not eof do begin
self.DBGrid1.Columns[0].PickList.add(fieldbyname('zd').AsString);
next;
end;
end;
 
多人接受答案了。
 
后退
顶部