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

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


如上图


有demo最好了,谢谢了。
...全文
938 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 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”。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧