一个关于DBGrid控件中使用下拉列表框的问题! 各位高手,小弟日前遇到一问题,我在一程序中新建了一窗口,用USES引用了其它窗口的一个TADOConnect控件,然后添加了一个下拉列表框,和一个DBGrid控件,在DBGRID中有一列必须要用到这个列表框,我想请问一下各位高手,怎样才能把这个列表框的用在dbgrid控件中?[注意:这个列表框中能焦点在该列上才显示,大小位置都等于该列的大小位置,] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个在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; 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; 上面那位仁况的方法我也试过了,可是却还是不行,我是从SQL SERVER数据库中的几张表中调的数据,不知怎么的却不行!请高手指教啊,小弟在此万分感谢! 建立两个TTABLE控件,一个指向需要显示的数据(A),另一个指向下拉列表指向的数据(B),用ADD COLUMN将A中的列全部加上,然后再ADD,NEW,将其选定为LOOKUP 类型,名称自定,在下列的选项中选择数据源B,在LOOKUP 列中将B中的代码选上,在RESULT列中将名称列选上。新加一窗口,建立一DBGRID,DATASOURCE指向A,试一试是否有了下拉列表?祝你成功! 我的困惑 【急】关于Delphi delphi如何实现左右声道播放不同的MP3音乐,最好提供参考程序。 把SQL 表里的数据输出为txt 关于更改系统壁纸一问! application.messagebox()函数请教。 xpmenu的颜色设置不起作用 在paradox库中如何用sql语句去获取指定行的数据 您怎样看待非计算机专业人员从事程序员职业的? 关于安装程序的问题! 请问如何调用资源文件中的位图文件 关于RANDOM函数
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;
你先把一个下拉列表在初始化时给隐藏了.就是说把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;
新加一窗口,建立一DBGRID,DATASOURCE指向A,试一试是否有了下拉列表?
祝你成功!