Delphi中如何实现下拉框显示多列?
小的新学Delphi不久,想知道那些可以显示多列的下拉框是如何实现的,比如,我有一部门表,有部门ID有部门名称,我想在一个下拉框中显示两列,部门ID及部门名称,请求各位解答,谢谢(分不够以后补上,呵呵)!
小的新学Delphi不久,想知道那些可以显示多列的下拉框是如何实现的,比如,我有一部门表,有部门ID有部门名称,我想在一个下拉框中显示两列,部门ID及部门名称,请求各位解答,谢谢(分不够以后补上,呵呵)!
解决方案 »
- 跪求一个在delphi下的,windows api的udp的实例代码
- TcxtextEdit 用日文输入法,输入的日文是乱码,复制的日文是正常的
- DBGRID中的Field如何以一定格式显示?
- 超级奇怪的问题: dxDBGrid +adoTable 请教各位??
- 新人,简单问题001!
- Com中如何返回TStringList类型变量的值?
- 关于打开窗体的问题!
- installshiedfordelphi
- 程序员性功能调查:你对你的性能力满意吗?进者有分
- 如果在程序中捕获TerminateProcess事件!
- 烦!大家现在在公司用什么版本的Delphi(散分,发布了两个帖子没人回,请大家顺便关照下)
- 如何调用"声卡的驱动程序集成卡拉OK功能",
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select ID+name as idname from 部门表' )
adoquery.open;
for i:=0 to adoquery.RecordCount-1 do
begin
cmb1.Items.Add(adoquery.fieldbyname('idname').AsString);
adoquery.Next;
end;
楼上那个就可以,如果是动态抓取数据的话,可以用Eh,自带的也可以,pagkList
1、自己去重画表格;
2、用第三方控件。
比如,Ehlib或Infopower 系统控件(如wwGrid)。 www.delphifans.com有下载。
另外,可参考:
http://topic.csdn.net/u/20080620/19/69e1ac96-e288-4d3e-91b3-7af6111deda7.html
控件具体使用方法参考其例子或上网找一下,多得不得了。
结分吧。
如果是在窗口上显示,可以用虚拟listview
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select ID,name from 部门表' )
adoquery.open;
for i:=0 to adoquery.RecordCount-1 do
begin
cmb1.Items.Add(adoquery.fieldbyname('id').AsString+'-'+adoquery.fieldbyname('name ').AsString);
adoquery.Next;
end;
加上'-' 是爲了讓兩列之間能清楚些,也可以不要'-'
如果要簡單1樓的最簡單了,還有就是自己重寫控件。
with adoquery do
adoquery.close;
adoquery.sql.clear;
adoquery.sql.add('select ID,name from 部门表' )
adoquery.open;
while not adoquery.eof do
begin
cmb1.Items.Addobject(adoquery.fieldbyname('name').AsString,tobject(strnew(pchar(adoquery.fieldbyname('name ').AsString))));
adoquery.Next;
end;
以上只显示名称。但可以获得选中的名称的ID:string(pchar(cmb1.Items.object[cmb1.itemindex]))
Form1.DBLookupComboboxEh1.ListSource:=DataModule1.DataSource1;
Form1.DBLookupComboboxEh1.ListField:='编号;名称';//要显示的列
Form1.DBLookupComboboxEh1.KeyField:='编号';//实际的值
Form1.DBLookupComboboxEh1.ListFieldIndex:=1;//显示的是哪一列,1表示第二列
这样也可以.
17的朋友说,既显示ID,又显示名称有什么,其它我认为有用,因为如果有时要选的内容很多的话,用户也知道自己选择是不是对的,名称有些很相似.
呵呵....总之还是谢谢各位
A001 -- 开发部
A002 -- 业务部这样显示。哈哈
要不就只能 OwnerDraw 了