我是这样:
---------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
table1.Active :=false;
table1.Active :=true;
dbcombobox1.items.clear;
while not Table1.Eof do begin
  DBComboBox1.Items.Add(Table1.FieldByName('dydj').AsString);
  Table1.Next;
end;
end;procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
//edit1.Text :=dbcombobox1.text
edit1.text:=dbcombobox1.items.strings[dbcombobox1.itemindex];
end;
------------------------------
(因不想误改数据故将table1设为readonly)
在edit1中却无法显示我选的值。

解决方案 »

  1.   

    可能是数据感知控件自己的原因吧,因为我们不是将一个表与其连接的,而是手工加入。
    用TComboBox没有问题!
      

  2.   

    procedure TDBComboBox.CMExit(var Message: TCMExit);
    begin
      try
        FDataLink.UpdateRecord;
      except
        SelectAll;
        SetFocus;
        raise;
      end;
      inherited;
    end;
    找到问题了,这是控件的部分源码。
    原因就是它未和数据源(如:TTable等等)连接。
    当失去焦点的时候就会执行UpdateRecord.
      

  3.   

    combobox支持将表的一个字段的全部记录添加到Items吗?
    DBComboBox1.Items.Add(Table1.FieldByName('dydj').AsString;
      

  4.   

    那如何将表的一个字段的全部记录添加到类似combobox里,再通过点选获得值呢?
      

  5.   

    遍历一下不就可以了吗?
    Table1.First;
    ComboBox1.Clear;
    while not Table1.eof do begin
      ComboBox1.Items.Add(Table1.FieldByName('dydj').AsString);
      Tabel1.Next;
    end;在ComboBox1.OnChange事件中处理
      

  6.   

    先谢谢各位!
    那现在有两个问题不知如何解决?
    1、如何从字段“dydj”取出所有不重复的记录。
       我用的是:
    query1.Close;
    query1.sql.Clear;
    query1.sql.Add('select distinct "dydj" from ttml.dbf');
    query1.ExecSQL;
    对吗?2、再把查询结果加入ComboBox1.Items里面,查询结果是什么类型的数据?
    result:=query1.fields[0].value;
    ComboBox1.Items.Add(query1.Fields[0].value)
    好象不行!
    还烦请各位点拨!
      

  7.   

    1. query1.execsql--->query1.open
    2. zzg40280614(northsky) 已经说得很清楚了,把table改为query就可以了
      

  8.   

    这样不行呀?!!
    query1.Close;
    query1.sql.Clear;
    query1.sql.Add('select distinct "dydj" from ttml.dbf');
    query1.open;query1.First;
    ComboBox1.Clear;
    while not query1.eof do begin
      ComboBox1.Items.Add(query1.FieldByName('dydj').AsString);
      query1.Next;
    我刚学DELPHI
    可以详细一点吗?
      

  9.   

    TQuery是需要用ODBC数据源的
    你先用databas连接数据源
      

  10.   

    我在query的database属性里设置数据库路径,如“d:\dt”
    再在select语句里给定数据库名,如“ttml.dbf".这样不行吗?
    如果用ODBC事先设置的话,那不是就不能动态改变数据库了吗?!!
    另,使用SQL语句就一定用query构件吗?
      

  11.   

    Table设成ReadOnly,其字段的值就不能再改变了。DBComboBox是感知控件,当然就不行了,用ComboBox吧