cxDBLookupComboBox1 设置好了一切我设置了两列,点下拉箭头后显示出来的是大货 | 0.1
小样 | 0.2
大样 | 0.3然后一个 edit1 用来接收 0.1  , 0.2  ,0.3 等系数procedure Toutputfrom.cxDBLookupComboBox1PropertiesChange(Sender: TObject);
begin
    Edit1.Text:= cxDBLookupComboBox1.Properties.ListColumns[1].Field.Text;
end;但是Edit1每次显示都是 0.1 ,我查阅了半天资料,就是没找到好的方法,求高人相助,小弟感激涕零

解决方案 »

  1.   

    参考看看:
    procedure Tfrm_Main.cbbPayPropertiesEditValueChanged(Sender: TObject);
    begin
      if TcxDBLookupComboBox(Sender).EditModified then
        with TcxDBLookupComboBox(Sender).Properties.DataController do
        begin
          if (TcxDBLookupComboBox(Sender).EditValue = '') or (TcxDBLookupComboBox(Sender).EditValue = Null) then
            Exit;
          with SysDM.cdsQuote do
          begin
            Edit;
            FieldByName('Rate').asfloat := Values[FindRecordIndexByKey(TcxDBLookupComboBox(Sender).EditValue), 1];
            FieldByName('RateAmount').AsFloat := FieldByName('PrdAmount').AsFloat * FieldByName('Rate').asfloat / 100;
          end;
          CalcPardAmount;
        end;
    end;
      

  2.   

    能否不用这么麻烦的方式,把数据存在TLIST中,想怎么取都行啊
      

  3.   

    只有这样子操作才可以,4楼的没有办法实现,用过cxDBLookupComboBox1 就知道怎么操作
      

  4.   

    自己发帖自己答,哈哈,经过两天的找寻,终于找到了合适的方法Edit1.Text:=cxDBLookupComboBox1.Properties.DataController.GetDisplayText(cxDBLookupComboBox1.Properties.DataController.FocusedRecordIndex,1) ;可以实现功能,O(∩_∩)O~
      

  5.   

    qiujunwang198577
    (小猪A梦):你的办法,我用了,不行呀!
    我的是这样:设置了两列:11| aaaaa
                         12| bbbbb
                         21| ccccc
    但如何设置cxDBLookupComboBox1.text值 ,默认值均是第一列的值,如:11,12,21等,就是不出来第二
    列的值?如何解决???
      

  6.   

    为什么cxDBLookupComboBox1.text:=cxDBLookupComboBox1.Properties.DataController.GetDisplayText(cxDBLookupComboBox1.Properties.DataController.FocusedRecordIndex,1) ;
    没有用呀,只是得到第一列的值,即11,12,21等???