本帖最后由 yongren803 于 2013-05-02 16:26:46 编辑

解决方案 »

  1.   


    Form中增加ADOConnection(连接数据库)、ADOQuery(选择下拉显示的内容表)、DataSource三个控件。
    点cxLookupComboBox控件,属性选择“Properties”下面的“ListSource”,改成DataSource1。
    “ListFieldNames”表示要显示的列的名,如果显示多列,列名中间用“;”分隔。
    “KeyFieldNames”表示要返回的结果列。
    上面的输入完了,点“ListColumns”,出现下面的内容。右边框里面的三行,对应“ListFieldNames”里面的列名。
    属性中的“Caption”表示下拉时显示的列标题文字。
    “HeaderAlignment”表示列标题字对齐。
    “Width”表示列宽。
    都设定好后,运行,就是下面的效果了。最开始时,设定的“KeyFieldNames”为gh,所以当选择了某一行后,会显示gh这一列的值。如果要显示其他列的值,改“KeyFieldNames”。
      

  2.   

    不错,兄弟,感谢有您啊。那选中时的值,去付值到edit控件上时,如何操作的?
      

  3.   

    zbdzjx 好兄弟,不错,说得挺详细,这样对新人,是最帮忙的,各位,大牛,应该像,这位大师那样,讲解,中国软件业才有更多接班人
      

  4.   

    --写在FocusChanged这上事件内试试! edit1.text:=cxLookupComboBox.text;
      

  5.   


    在OnSelect事件中赋值有这个事件吗? 我没找到
      

  6.   

    这样就行。procedure TForm1.cxLookupComboBox1PropertiesChange(Sender: TObject);
    begin
           cxTextEdit1.Text:=cxLookupComboBox1.Text;
    end;
      

  7.   


    在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?试着改一下“ListFieldIndex”里面的值。
    我电脑上的Delphi删除了,沒法試。
      

  8.   


    在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?试着改一下“ListFieldIndex”里面的值。
    我电脑上的Delphi删除了,沒法試。正解,那说明你上面说的那个“KeyFieldNames”不对,
    另外,如何获取别年列值?
      

  9.   


    在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?试着改一下“ListFieldIndex”里面的值。
    我电脑上的Delphi删除了,沒法試。正解,那说明你上面说的那个“KeyFieldNames”不对,
    另外,如何获取别年列值?如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。
      

  10.   


    在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?试着改一下“ListFieldIndex”里面的值。
    我电脑上的Delphi删除了,沒法試。正解,那说明你上面说的那个“KeyFieldNames”不对,
    另外,如何获取别年列值?如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。看来这控件也有不好用的地方,我一直以为有属性可以搞定呢。
      

  11.   


    在不?发现一个问题,当有几列时,谁是第一列,那显示的就是那列,奇了怪了吧?试着改一下“ListFieldIndex”里面的值。
    我电脑上的Delphi删除了,沒法試。正解,那说明你上面说的那个“KeyFieldNames”不对,
    另外,如何获取别年列值?如上面的图中,如果选择了工号是003的,要获得他的出生日期,我知道的办法只有从表中查询工号是003的记录,读出出生日期,好像不能直接获得。如何从数据库里读出数据 让下拉正好显示数据库中的值呢?