CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

一个关于DBGrid控件中使用下拉列表框的问题!

楼主TangDY(Tang)2003-02-04 17:39:16 在 Delphi / VCL组件开发及应用 提问

各位高手,小弟日前遇到一问题,我在一程序中新建了一窗口,用USES引用了其它窗口的一个TADOConnect控件,然后添加了一个下拉列表框,和一个DBGrid控件,在DBGRID中有一列必须要用到这个列表框,我想请问一下各位高手,怎样才能把这个列表框的用在dbgrid控件中?[注意:这个列表框中能焦点在该列上才显示,大小位置都等于该列的大小位置,] 问题点数:50、回复次数:5Top

1 楼cg1120(代码最优化-§惟坚韧者始能遂其志§)回复于 2003-02-04 17:45:02 得分 20

一个在DBGRID中嵌入COMBOBOX控件的例子:  
   
  procedure   Tf_hksz.DBGDrawColumnCell(Sender:   TObject;   const   Rect:   TRect;  
      DataCol:   Integer;   Column:   TColumn;   State:   TGridDrawState);  
  begin  
              begin  
                    q_rq.Left:=Rect.Left   +   dbg.Left+3;//q_rq   为TCOMBOBOX  
                    q_rq.Top:=Rect.Top   +   dbg.top+3;  
                    q_rq.Width:=Rect.Right   -   Rect.Left;  
                    q_rq.Height:=Rect.Bottom   -   Rect.Top;  
                    q_rq.Visible:=true;  
              end;  
   
  procedure   Tf_hksz.DBGColExit(Sender:   TObject);  
  begin  
        q_rq.Visible:=false;  
  end;Top

2 楼TangDY(Tang)回复于 2003-02-04 18:09:24 得分 0

其实我也照上面那位高手那样试过了,可是却还是不行,但是却可以根据列的不同隐藏那个下拉列表框,请各位高手再帮帮忙,小弟在线等待~!!!谢谢了!Top

3 楼haerbin982()回复于 2003-02-04 18:36:06 得分 20

cg1120(代码最优化-§新年祝福你,好运伴着你§)的方法可以的.  
  你先把一个下拉列表在初始化时给隐藏了.就是说把dbcombobox.visible:=false;  
  procedure   TForm1.DBGrid1DrawDataCell(Sender:   TObject;   const   Rect:   TRect;  
      Field:   TField;   State:   TGridDrawState);  
  begin  
      if   (gdFocused   in   State)   then  
      begin  
          if   (Field.FieldName   =   DBComboBox1.DataField)   then  
          begin  
              DBComboBox1.Left   :=   Rect.Left   +   DBGrid1.Left;  
              DBComboBox1.Top   :=   Rect.Top   +   DBGrid1.top;  
              DBComboBox1.Width   :=   Rect.Right   -   Rect.Left;  
              DBComboBox1.Visible   :=   True;  
          end;  
      end;  
  end;Top

4 楼TangDY(Tang)回复于 2003-02-05 16:48:16 得分 0

上面那位仁况的方法我也试过了,可是却还是不行,我是从SQL   SERVER数据库中的几张表中调的数据,不知怎么的却不行!请高手指教啊,小弟在此万分感谢!Top

5 楼zqdshsy()回复于 2003-02-05 17:16:26 得分 10

建立两个TTABLE控件,一个指向需要显示的数据(A),另一个指向下拉列表指向的数据(B),用ADD   COLUMN将A中的列全部加上,然后再ADD,NEW,将其选定为LOOKUP   类型,名称自定,在下列的选项中选择数据源B,在LOOKUP   列中将B中的代码选上,在RESULT列中将名称列选上。  
  新加一窗口,建立一DBGRID,DATASOURCE指向A,试一试是否有了下拉列表?  
  祝你成功!  
  Top

相关问题

  • 那里有文件列表框控件?
  • 关于列表框和列表控件~~~ 求教!
  • true dbgrid控件怎么使一个网格又下拉的列表弹出来
  • 急急急!如何得到下拉框控件的列表框?
  • DBGrid 控件
  • DBGrid控件
  • 文件控件中目录列表框的使用方法
  • 怎么在列表控件中的项加复选框?
  • 有关列表控件
  • dbgrid里面怎么加列表框?

关键词

  • 控件
  • 数据
  • top
  • 列表框
  • dbgrid
  • rq
  • dbcombobox
  • rect
  • 列表
  • 高手

得分解答快速导航

  • 帖主:TangDY
  • cg1120
  • haerbin982
  • zqdshsy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo