procedure TForm1.cbChange(Sender: TObject);
begin
   edit1.Clear;
   edit1.Text := String(cb.Items.Objects[cb.ItemIndex]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  With aq do
    begin
      First;
      cb.Clear;
      DisableControls;
      while not eof do
        begin
          Cb.Items.AddObject(FieldbyName('cp_name').AsString,Tobject(fieldByName('cp_no').asString));
          next;
        end;
      cb.ItemIndex := 0;
      EnableControls;
    end;
end;

解决方案 »

  1.   

    用这句可以吗
    edit1.Text := cb.items.Strings[cb.itemindex];//  String(cb.Items.Objects[cb.ItemIndex]);
      

  2.   

    procedure TForm1.cbChange(Sender: TObject);
    begin
       edit1.Clear;
       edit1.Text := (cb.Items.Objects[cb.ItemIndex]);<--不知道你要的是什么,所以我也不知道应该怎么帮你改了:(
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      With aq do
        begin
          First;
          cb.Clear;
          DisableControls;
          while not eof do
            begin          Cb.Items.tems.AddObject(FieldbyName('cp_name').AsString, FieldbyName('cp_name')); <----------这样,它本身就是一个TObject
              next;
            end;
          cb.ItemIndex := 0;
          EnableControls;
        end;
    end;
    ================================================================
         ◆◆◆ CSDN查询助手,查询方便快捷◆◆◆ 下载地址:  
     http://CoolSlob.ifood1.com/Download/CSDNFinder.exe  
     http://CoolSlob.8u8.com/Download/Tools/CSDNFinder.Slob[更名为.exe即可]  
      

  3.   

    procedure TForm1.cbChange(Sender: TObject);
    begin
       edit1.Clear;
       edit1.Text := cb.Items.Strings[cb.ItemIndex]);
    //你要的是字段的内容,不需要使用Object!!请看帮助,学习TStrings与TStringList的用法!
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    //不是什么时候都使用with语句的!像现在,使用with语句反而会将低程序的可读性!
      aq.First;
      cb.Clear;
      aq.DisableControls;
      while not aq.eof do
      begin
        cb.Items.Add(aq.FieldByName('cp_no').AsString);
        aq.next;
      end;
      cb.ItemIndex := 0;
      aq.EnableControls;
    end;注意:
      1、操持程序大小写一致!如你出现了cb和Cb!
      2、请不要使用cb, aq这样枯燥的名字!“见名知义”!!!
      3、不要滥用with语句!练习:
      熟练TStrings和TStringList的用法.================================================================
         ◆◆◆ CSDN查询助手,查询方便快捷◆◆◆ 下载地址:  
     http://CoolSlob.ifood1.com/Download/CSDNFinder.exe  
     http://CoolSlob.8u8.com/Download/Tools/CSDNFinder.Slob[更名为.exe即可]  
      

  4.   

    首先来看看TStrings.Objects属性存储的是对象的内存地址
    TField.AsString属性存储字符串
    当字符串在一个区域中使用完后编译器会将其资源释放
    所以虽然你保存了字符串的内存地址,但资源已经释放
    如果你的'cp_no'字段是一个数值类型就比较好办
    参考如下代码:procedure TForm1.cbChange(Sender: TObject);
    begin
      Edit1.Clear;
      if TCombBox(Sender).ItemIndex < 0 then Exit;
      Edit1.Text := IntToStr(
        TCombBox(Sender).Items.Objects[TCombBox(Sender).ItemIndex]));
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      { TODO -oZswang -o2002.09.28 : 动态打开ADOQuery,否则当没有安装数据库时,程序会出严重错误 }
      with aq do begin
        First;
        cb.Clear;
        DisableControls;
        while not Eof do begin
          cb.Items.AddObject(FieldbyName('cp_name').AsString,
            TObject(FieldByName('cp_no').AsInteger)); //AsString -> AsInteger
          Next;
        end;
        cb.ItemIndex := 0;
        EnableControls;
      end;
    end;
      

  5.   

    procedure TForm1.cbChange(Sender: TObject);
    begin
      Edit1.Clear;
      if TCombBox(Sender).ItemIndex < 0 then Exit;
      Edit1.Text := IntToStr(Integer(
        TCombBox(Sender).Items.Objects[TCombBox(Sender).ItemIndex]))); //强制转换
    end;
      

  6.   

    嘻嘻:)楼主要的是向TComboBox中加入字段的值..
      

  7.   

    我测试通过的一段代码供大家参考!
    var
    id: ^string;
    begin
        ADOQuery1.SQL.Text:='select id,name from account';
        ADOQuery1.Open ;
        Combobox1.Clear;    while not ADOQuery1.Eof do
        begin
            new(id);
            id^:=ADOQuery1.Fields.Fields[0].AsString;
            Combobox1.Items.AddObject(ADOQuery1.Fields.Fields[1].AsString,pointer(id^));
            ADOQuery1.Next;
        end;Edit1.Text:=string(ComboBox1.Items.Objects[ComboBox1.ItemIndex]) ;
      

  8.   

    如果你只是想向combox中加入字段的值,为什么不用 cb.items.add(string)?为什么用什么addobject? zswang(伴水)(编程乃艺术) 说的很对,我最讨厌with语句!!