这个组件如何使用啊,我都设置的datasource 以及 datafield 可是那里的箭头显示的是无法使用状态。那个高手用过,帮帮小弟啊。小弟QQ: 115442109  (在线等)

解决方案 »

  1.   

    转一个别人写的:(原帖见http://blog.csdn.net/crazycock/archive/2004/10/24/149611.aspx)
    TDBLookupComboboxEh和TDBGridEh一样强大无比,可以做出Combobox下拉出Grid的效果。
    下面是一些重要属性的小结(可怜费了我半天功夫,文档太少了.......)(1)ListSource和DataSource属性,这个比较好理解,DataSource就是这个ComboBox自身所对应数据库的字段所在的TDataSource。而ListSource则对应着这个ComboBox自身的字段所关联的字典的数据集(比较拗口)。
    例如:ADOTable1是商品表,DataSource1是对应ADOTable1,ADOTable2是商品分类表,DataSource2是对应ADOTable2。现在需要在界面上有一个TDBLookupComboboxEh,你需要的效果是TDBLookupComboboxEh关联商品表的商品分类这个字段,而且希望用户可以很方便选择商品分类,那么他的ListSource就应该选择DataSource2,他的DataSource对应DataSource1。(2)DataField属性。应该是主表的字段名称。(3)KeyField属性。应该是对应编码表的对应字段的名称;(4)ListField属性。这个是个很关键的属性,如果你希望下拉出一个表格的效果而不是仅仅一个List的效果,那么这个地方可以填写多个字段名,中间用“;”格开(用分号格开)。(5)ListFieldIndex属性。这个属性也很关键。它决定你选中后,在控件里显示什么内容,虽然商品表和商品分类表之间靠商品分类编码关联,但是你肯定希望显示出来的是商品分类名称,这个时候这个参数就很重要了。例如:前面的ListField属性设置为“flbm;flmc;sjfl”(注:分类编码;分类名称;上级分类),那么如果用户选中Combobox下拉的菜单后你希望显示分类名称而不是分类编码,就需要设置ListFieldIndex为1而不是0。这个仅仅是显示的内容,实际入库的内容还是DataField对应的内容。(6)Style属性。这个属性设置为csDropDownListEh即可保证用户只能选择而无法输入字符。如果设置为csDropDownEh则可以输入字符(感觉不可能让用户自行输入内容,除非表很大不好选,用这个功能来快速定位,但是要对输入的内容进行合法性验证)(7)DropDownBox.ShowTitle属性。该属性设置为True可显示下拉表格的标题。(8)DropDownBox.Column属性。该属性和DBGridEh的Column属性类似,可以对显示的标题进行设定(否则默认标题是字段名),也可以对下拉表格的一些参数进行设置,例如显示的行数等。(9)DropDownBox.Sizable属性。决定下拉的表格能否允许用户改变Size。(10)EditButton属性。可以允许用户设置右边那个小按钮的类型,是下拉图标还是自定义图标还是其他样式。------------------------希望后来人能够少走弯路,呵呵~
      

  2.   

      因为主从表两个表,需要设置两个TADODataSet和两个TDataSource,TADODataSet1查询主表,TADODataSet2查询从表,TDataSource1连接TADODataSet1,TDataSource2连接TADODataSet2,然后双击TADODataSet1,点击右键有个New Field,添加列名,不要和主从表中的列名相同,选择对应的数据类型,再选择Lookup,Key Fields是主表的字段,DataSet是从表的TADODataSet2,Lookup Keys是从表的字段,Result Field是从表中的字段,也就是TDBLookupComboboxEh中需要显示的字段.连接TDBLookupComboboxEh的DataSource是主表的数据源,DataField连接的就是刚刚添加的那列.
      这是我的方法,不知道你适用不?