问题同上!

解决方案 »

  1.   

    你可以在formcreate的时候从数据库中读入对应列的数据
    然后制定对应的itemindex,不是-1就可以了
      

  2.   

    你说的itemindex这个属性在哪里我怎么找不到??
      

  3.   

    在程序开始的时把数据集打开不就有值了。
    你不会是没有设置ListSource,ListField 吧
      

  4.   

    sorry,应该是 ListFieldIndexFor the TDBLookupComboBox object, ListFieldIndex also determines which field appears in the edit region of the combo box
      

  5.   

    楼上的兄弟:
    ListFieldIndex好象是ListField的排序方式吧,和一开始有没有值没有关系吧,或许你可能没有明白我的意思,我的数据已经读出来了,但TDBLookupComboBox在初始的时候是空的,我希望它有个值。你说的itemindex应该是ComboBox的属性吧,在TDBLookupComboBox里应该没有的,如果有问题就简单了还是要谢谢你的,呵呵如果我说的不对,希望你能给我个例子看看
      

  6.   

    楼主,是编辑框里没值,下拉框有值吗?
    //DBLookupComboBox1.text:=DBLookupComboBox1.items[0];?
      

  7.   

    为什么你们都说DBLookupComboBox1有items这个属性,我怎么就是找不到呢???????
      

  8.   

    {楼主,对不起,我刚才试了一下才知道DBLookupComboBox1.text  是个只读属性,原来DBLookupComboBox1.text是自动设置,之所以TDBLookupComboBox在程序开始的时候没有值是因为在当前的DATAFIELD
    中找不到LISTFIELD相匹配的值,所以下面代码在DBLookupComboBox1。DATASOURCE。DATASET定位匹配的值,这样TDBLookupComboBox在程序开始的时候就有值了(KEYFIELD要设置好)
    以下代码在D6+WIN98
    调试通过。
    procedure TForm1.FormCreate(Sender: TObject);
    var
       sListField,sDataField:string;
       bFind:Boolean;
    begin
       sListField:=DBLookupComboBox1.ListField;
       sDataField:=DBLookupComboBox1.DataField; 
    Table2.First;//TABLE2是DBLookupComboBox1。DATASOUCE
      bFind:=false;
      while (not Table2.Eof) and (not bFind) do
      begin
         Table1.First;
         while  not Table1.Eof do
         begin//TABLE2是DBLookupComboBox1.LISTSOUCE
           if Table2.FieldByName(sDataField).AsString = Table1.FieldByName(sListField).AsString then
           begin
               bFind:=true;
               break;
           end;
           Table1.Next;
         end;
         Table2.Next;
      end;
    end;