s:='aaaa';
self.cmbClient.Items.AddObject(trim(FieldValues['ClientIP']),TObject(s));showmessage(string(cmbClient.Items.Objects[cmbClient.ItemIndex]));
以上没有问题。s:=trim(FieldValues['ClientNO']);
showmessage(s);
self.cmbClient.Items.AddObject(trim(FieldValues['ClientIP']),TObject(s));showmessage(string(cmbClient.Items.Objects[cmbClient.ItemIndex]));显示出s值为'aaaa',也就是说trim(FieldValues['ClientNO']='aaaa',但绑定到combox结果不对

解决方案 »

  1.   

    回复:建议楼主这样做:
       type
         TS=class
         private
         s:string;
       end
    var
      a:TS;  s:=trim(FieldValues['ClientNO']);
    showmessage(s);
    a:=TS.create;
    a:=s;
    self.cmbClient.Items.AddObject(trim(FieldValues['ClientIP']),a);showmessage(TS(cmbClient.Items.Objects[cmbClient.ItemIndex]).s);
    最后要记得释放内存
      

  2.   

    s:=trim(FieldValues['ClientNO']);
    showmessage(s);
    a:=TS.create;
    a.s:=s;
    self.cmbClient.Items.AddObject(trim(FieldValues['ClientIP']),a);showmessage(TS(cmbClient.Items.Objects[cmbClient.ItemIndex]).s);
      

  3.   

    s:='aaaa';
    self.cmbClient.Items.AddObject(trim(FieldValues['ClientIP']),TObject(s));
    这句后面的TObject(s)虽然可以编译过去,但是执行错误的。因为将字符串变量本身转化成TObject类型的对象是不可以的。