如何在DBGRID构件中的指定列显示COMBOBOX构件并使COMBOBOX显示记录中的内容?请给个例子?我有一个例子是delphi4环境下的,编译不能通过,我用的是delphi6
解决方案 »
- 程序很长,并且结构复杂,并且只是在数据多时偶然出现浮点运算出错,试验单步调试好像不太好,如何记录下程序执行到哪一段代码了?
- 怎样拖拽自己用Canvas画的图形啊?(在线等)
- 在DBGrid中新增几条后,执行 ADOTable.CancelBatch(arAll); 为什么会出错?
- 有关 ListView 控件 ,鼠标拖动多选的问题
- 和女朋友分手了,心情真不好,散分!!!!
- 我需要对一个字段排序后进行修改,当用order by a1语句后,就无法修改了,怎么办呢?
- 关于Object Pascal中类方法 class procedure
- 我的菜单按钮要显示一个窗口,结果运行后提示:Name not unique in this context.我的窗口名称是唯一的呀,为什么会有这个提示呢?
- pascal里,自定义过程或函数的问题
- table怎么实现组合查询?
- DBDateTime控件在哪里可以找到?
- dblookupcombobox中选择另外一项,会触发什么事件?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGridEh; <----------在这里出错!
With adoquery1 do//下拉框里添加产品型号
begin
Active:=False;
sql.clear;
sql.add('Select DBGRID里的列名 from 与DBGRID相关的表');
Open;
While not Eof do
begin
Combobox1.Items.Add(fieldvalues['列名'].asstring);
next;
end;
end;
先把另一个数据表的可用记录放入其中procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdfocused in state then
begin
if column.FieldName='xxx' then //xxx为你要让combobox显示的那列的字段名
begin
ComboBox1.Left:=rect.Left+form1.DBGrid1.Left;
ComboBox1.Top:=rect.Top+form1.DBGrid1.Top;
ComboBox1.Width:=rect.Right-rect.Left;
ComboBox1.Height:=rect.Bottom-rect.Top;
ComboBox1.Visible:=true;
end;
end;
end;