我看到有些DBGrid显示的字段下的值,有下拉菜单!是在怎么做到的?

yundou 2003-08-18 08:45:45
我看到有些DBGrid显示的字段下的值,有下拉菜单!是在怎么做到的?
...全文
61 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayukowa 2003-08-21
  • 打赏
  • 举报
回复
在form的oncreat事件是添加
//动态添加dbgrid的picklist值;
h:=0;
with AdoQuery2 do
begin
first ;
while not eof do
begin
DBGrid1.Columns[1].PickList.Add(FieldByName('机构名称').AsString);
inc(h);
next ;
end;
end;
bigtailwolf163 2003-08-21
  • 打赏
  • 举报
回复
刚刚试出来,同一字段的list改变

在CellClick事物里写:
……;//ColEnter中sql的where 条件
dbgNameColEnter(self);

注意DBGird的options->dgindicator设为true
bigtailwolf163 2003-08-21
  • 打赏
  • 举报
回复
如果是同一字段的不同记录动态改变list的内容呢????
jpyc 2003-08-20
  • 打赏
  • 举报
回复
http://218.56.11.178:8020/web/index.aspx

-> 下载基地->例程-数据库/报表->在DBGRID中下拉列表的显示
cjfzy 2003-08-19
  • 打赏
  • 举报
回复
自己画比较好,学习一下各个控件重要属性rect,你会受益匪浅!
overtime 2003-08-19
  • 打赏
  • 举报
回复
picklist
cobi 2003-08-19
  • 打赏
  • 举报
回复
picklist是可以实现你想要的功能,不过你会发现picklist在使用的时候并非那么的好用。

首先,你必须选中有关的字段后再单击一下才能调出下拉框(可能是为了保证用户不至误操作而至),所以我一般不会使用这个属性。

另外的办法是自己往dbgrid中添加(画)一个下拉框,这个在csdn上已经有很多帖子介绍过了,不过效果也是一般,尤其是当下拉框出现在dbgrid边缘的时候会出现超出的现象。

最好的办法是使用第三方的控件,如1stclass等,他们的grid在这方面做的不错,当然也可以参考他们的方法自己修改dbgrid
XXSingle 2003-08-19
  • 打赏
  • 举报
回复
双击DBGrid,添加字段,选中一个字段,找到PickList属性.....
添加值,楼上newsofter(横空出世小霸王) 说得好全
火龙岛主 2003-08-19
  • 打赏
  • 举报
回复
添加Lookup字段也可以实现同样的效果,
不过Lookup是针对query(Adoquery)实现的
鼠标双击query(adoquery),鼠标单击右键,
New Field设置Field type=Lookup
然后设置相关属性即可!
newsofter 2003-08-19
  • 打赏
  • 举报
回复
//在DBGrid的colEnter事件写下如下代码,即可实现下拉列表
with DBGri1.selectedfield do
if (FieldName='field1') then //field1下拉显示FieldMc值
with adoquery1 do
begin
close;
sql.Clear ;
sql.Add('select distinct fieldmc from table1 ');//信息来源表
open;
if recordcount>0 then
begin
first;
with DBgrid1 do
for j:=1 to FieldCount do
if columns[j].FieldName ='fieldmc' then
begin
columns[j].PickList.Clear;
for i:=1 to recordcount do
begin
columns[j].PickList.Add(fieldbyname('fieldmc').value);
next;
end;
break;
end;
end;
close;
end;
cjs5210 2003-08-19
  • 打赏
  • 举报
回复
呵呵,来晚了,PickList属性,楼上的几位已经说得很全了
sy_315 2003-08-19
  • 打赏
  • 举报
回复
给你介绍一本书
delphi6数据库使用程序设计100例
人民邮电出版社
书上第一个例子就是你提出问题的
还有过于dbgrid的排序问题
samcrm 2003-08-18
  • 打赏
  • 举报
回复
动态给DBGrid的PickList赋值
=============================
放一个memo,假设另一张表用query2连接。
memo1.clear;
query2.Open;
query2.First;
while not query2.eof do
begin
memo1.Lines.AddStrings(query2['某个字段']);//必须是string型字段
query2.next;
end;

DBGrid1.Columns[1].PickList:=Memo1.Lines;
yundou 2003-08-18
  • 打赏
  • 举报
回复
那PickList下的值,能不能从另外一张表中的某一个字段下的值读入!?
samcrm 2003-08-18
  • 打赏
  • 举报
回复
双击DBGrid,添加字段,选中一个字段,找到PickList属性,打开一个类似memo的窗口,输入即可。
samcrm 2003-08-18
  • 打赏
  • 举报
回复
PickList

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧