string(cbxName.Items.Objects[cbxName.ItemIndex])
提示“Invalid typecast”
上面语句怎么写?我是这样写到combobox中的:
  with CDS do
  begin
    while not Eof do
    begin
      sID := FieldByName('ID').AsString;
      sName := FieldByName('name').AsString;
      ComboBox1.Items.AddObject(sName,TObject(sID));
      Next;
    end;
    Close;
  end;

解决方案 »

  1.   

    你要获得ComboBox中的串,直接用下面的表达式就可以:
    ComboBox1.Items.Strings[I]如果要获得当前串,可以直接用
    ComboBox1.Text
    这样用允许串不在列表中;
    也可以麻烦一点,用
    ComboBox1.Items.Strings[ComboBox1.ItemIndex]
    这样用通常是显示的串在列表中,当Items.Count = 0时会发生异常;因此你需要注意Style属性
      

  2.   

    这么写就可以了
    String(pointer(cbxName.Items.Objects[cbxName.ItemIndex]))
      

  3.   

    改为:
    with CDS do
      begin
        while not Eof do
        begin
          sID := FieldByName('ID').AsString;
          sName := FieldByName('name').AsString;
          ComboBox1.Items.Add(sName,TObject(sID));
          Next;
        end;
        Close;
      end;
      

  4.   

    ComboBox是不能加两个字段信息的。
    建议你用dblookupcombobox。
      

  5.   

    String(pointer(cbxName.Items.Objects[cbxName.ItemIndex]))