cxLookupComboBox如何填充下拉的值?及获取值

此昵称已经1存在 2013-05-02 03:50:49
cxLookupComboBox如何填充下拉的值?及获取值
1.如何把三个字段字填充到这个控件下面呢?
2.如把把选中的记录的值写到edit上面呢?


如上图


有demo最好了,谢谢了。
...全文
645 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
引用 13 楼 zbdzjx 的回复:
[quote=引用 12 楼 yongren803 的回复:] [quote=引用 11 楼 zbdzjx 的回复:] [quote=引用 10 楼 yongren803 的回复:] [quote=引用 1 楼 zbdzjx 的回复:] Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?[/quote] 试着改一下“ListFieldIndex”里面的值。 我电脑上的Delphi删除了,沒法試。[/quote] 正解,那说明你上面说的那个“KeyFieldNames”不对, 另外,如何获取别年列值?[/quote] 如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。[/quote] 如何从数据库里读出数据 让下拉正好显示数据库中的值呢?
回复
引用 13 楼 zbdzjx 的回复:
[quote=引用 12 楼 yongren803 的回复:] [quote=引用 11 楼 zbdzjx 的回复:] [quote=引用 10 楼 yongren803 的回复:] [quote=引用 1 楼 zbdzjx 的回复:] Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?[/quote] 试着改一下“ListFieldIndex”里面的值。 我电脑上的Delphi删除了,沒法試。[/quote] 正解,那说明你上面说的那个“KeyFieldNames”不对, 另外,如何获取别年列值?[/quote] 如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。[/quote] 看来这控件也有不好用的地方,我一直以为有属性可以搞定呢。
回复
zbdzjx 2014-04-01
引用 10 楼 yongren803 的回复:
[quote=引用 1 楼 zbdzjx 的回复:] Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?[/quote] 试着改一下“ListFieldIndex”里面的值。 我电脑上的Delphi删除了,沒法試。
回复
引用 1 楼 zbdzjx 的回复:
Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?
回复
zbdzjx 2014-04-01
引用 12 楼 yongren803 的回复:
[quote=引用 11 楼 zbdzjx 的回复:] [quote=引用 10 楼 yongren803 的回复:] [quote=引用 1 楼 zbdzjx 的回复:] Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?[/quote] 试着改一下“ListFieldIndex”里面的值。 我电脑上的Delphi删除了,沒法試。[/quote] 正解,那说明你上面说的那个“KeyFieldNames”不对, 另外,如何获取别年列值?[/quote] 如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。
回复
引用 11 楼 zbdzjx 的回复:
[quote=引用 10 楼 yongren803 的回复:] [quote=引用 1 楼 zbdzjx 的回复:] Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。 点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。 “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。 “KeyFieldNames”表示要返回的结果列。 上面的输入完了,点“ListColumns”,出现下面的内容。 右边框里面的三行,对应“ListFieldNames”里面的列名。 属性中的“Caption”表示下拉时显示的列标题文字。 “HeaderAlignment”表示列标题字对齐。 “Width”表示列宽。 都设定好后,运行,就是下面的效果了。 最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?[/quote] 试着改一下“ListFieldIndex”里面的值。 我电脑上的Delphi删除了,沒法試。[/quote] 正解,那说明你上面说的那个“KeyFieldNames”不对, 另外,如何获取别年列值?
回复
看了说明图,好详细,学习了,
回复
knife_s 2013-05-03
看了楼上的图文说明,呵呵,谢谢
回复
xxzqbxxzqb 2013-05-03
这样就行。 procedure TForm1.cxLookupComboBox1PropertiesChange(Sender: TObject); begin cxTextEdit1.Text:=cxLookupComboBox1.Text; end;
回复
xxzqbxxzqb 2013-05-03
引用 5 楼 sololie 的回复:
引用
那选中时的值,去付值到edit控件上时,如何操作的?
在OnSelect事件中赋值
有这个事件吗? 我没找到
回复
sololie 2013-05-03
引用
那选中时的值,去付值到edit控件上时,如何操作的?
在OnSelect事件中赋值
回复
迷途的小孩 2013-05-02
引用 2 楼 yongren803 的回复:
不错,兄弟,感谢有您啊。 那选中时的值,去付值到edit控件上时,如何操作的?
--写在FocusChanged这上事件内试试! edit1.text:=cxLookupComboBox.text;
回复
hhhfff2010 2013-05-02
zbdzjx 好兄弟,不错,说得挺详细,这样对新人,是最帮忙的,各位,大牛,应该像,这位大师那样,讲解,中国软件业才有更多接班人。。。
回复
不错,兄弟,感谢有您啊。 那选中时的值,去付值到edit控件上时,如何操作的?
回复
zbdzjx 2013-05-02

Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。
点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。
“ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。
“KeyFieldNames”表示要返回的结果列。
上面的输入完了,点“ListColumns”,出现下面的内容。

右边框里面的三行,对应“ListFieldNames”里面的列名。
属性中的“Caption”表示下拉时显示的列标题文字。
“HeaderAlignment”表示列标题字对齐。
“Width”表示列宽。
都设定好后,运行,就是下面的效果了。

最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4919

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2013-05-02 03:50
社区公告
暂无公告