大家好,我在这里求救了,我先把问题描述一下。我要做一个分类管理项目,以SortID为关联值比较。我举个例子。
类别表 sortsSortID       SortName       
212           数码产品  
213           电脑配件
214           手机通讯
215           办公设备
216           软件工具
产品表  ChanpingCPID        SortID       CPname
1           213          主板
2           213          显卡
3           213          硬盘
4           212          数码相机
5           212          摄像头
6           212          商务PDA
7           215          传真机
8           215          复印机
9           215          投影机用Combobox下拉框怎么实现产品的类别修改,我发现combobox可以用   ADOQuery1.First;
   while not ADOQuery2.Eof do
     begin      ComboBox1.AddItem(ADOQuery2.fieldbyname('SortName').asstring,
      TObject(ADOQuery2.fieldbyname('SortID').asstring));
   
      ADOQuery2.Next;     end;这样可以正常显示SortName,可以选择操作,但我不知道如何接收SortID。
我在网上找了很多天,Edit1.text:=string(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);这样接收的结果还是SortName的内容。有时候还是随机值,类似乱码一样。
我需要SortName来显示内容,供用户选择,需要SortID来保存到数据库中。我以前用ASP做网页,这个问题就很好解决,因为ASP的下拉框本身就有两个值。
<input name="SortName" type="text"  value="SortID" >
还有人建议
ComboBox1.Items.AddObject('显示数据',TObject('实际需要数据'));

ComboBox1.AddItem('显示数据',TObject('实际需要数据'));获取时:String(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);关键是获取时编译器会报错。
不知道在delphi里应该怎么实现这个功能,我在网上下载了很多类似的源码,我注意到一点
几乎都是直接存取类的名称,根本没有用到ID值来关联分类,因为我是初学实在是找不到我想要的方法。请大家帮帮忙。谢谢
  

解决方案 »

  1.   

    用TDBLOOKUPCOMBOBOX控件试试.应该可以满足你的要求
      

  2.   

    用TDBLOOKUPCOMBOBOX控件
    listsource 类别表
    listfield SortName
    keyfield SortIDdatasource 产品表
    keyfield SortId
      

  3.   

    TDBLOOKUPCOMBOBOX控件  具体怎么用?我按二楼的做法,TDBLOOKUPCOMBOBOX控件是灰色的,不能显示数据。多谢指教!!!!能不能写详细一点,呵呵,
      

  4.   

    问题已经解决,原来是类型设置错误,我把ID类型给写为字符型了,应该是数字整型。结果就正确了,谢谢大家帮忙。
    TDBLOOKUPCOMBOBOX控件因为要多加一个数据源控件,我不喜欢太多控件,控件越少越好,呵呵!