如题

解决方案 »

  1.   

    不用.
    不过还是想问问楼主所说的把INTEGER类型转成TOBJECT是什么意思..嘿嘿
      

  2.   

    是这样的,我想把一个Integer值保存到ComboBox里面,但是这个控件的AddObject方法只接受TObject对象,于是我就把Integer转换为TObject了。
      

  3.   

    楼主是不是用的delphi.net???
    来错分区了???
    据我的了解  在delphi.net以前的版本中好像不存在 能把integer 转换为 tobject这种事
    首先integer就不是一个类——这和java 以及.net不同如果楼主说的是.net 里的   ,Integer转换为TObject当然不用自己释放,java也是如此
      

  4.   

    这里只是记录一个指针,释放问题与它无关,指针传递自然没理由报错~~~但有另一个严重问题,对象是存在堆上的,VCL对象不手动释放,就一直存在,所以可以这里可以这么用.而Integer呢?我相信你不是给它动态分配在堆上吧?那它就在栈上,栈的概念有吧?下一次指针指向的Integer类型数据就不是同一个,上次那个已经释放了,所以不要这么做.
      

  5.   

    比如:
    A:Tobject;
    B:integer;
    .......
    A:=Tobject.create;
    ....
    b:=integer(a);
    .....
    以后
    你可以A.free,也可以Tobject(B).free;但只能释放一次。
      

  6.   

    这样用没有多大问题的...
    比如:
    var
      a:TObject;
      b:integer;
    begin
    ...
      其中a本身,也仅是四字节的整型,只是它将会用于存地址而已.
    强制转换后,把它当成整型数用没有什么不行的.
      

  7.   

    比如:
    A:Tobject;
    B:integer;
    .......
    A:=Tobject.create;
    ....
    b:=integer(a);
    .....
    以后
    你可以A.free,也可以Tobject(B).free;但只能释放一次。
    --------------------------------------------------
    靠,原来说的这种转换阿
    这样做有意义吗?a和b实际在内存中都是32位整数,说穿了就是指针,a转成b 不过是个内存地址的数字,这还可以用来显示
    但b转成a呢,在这里毫无意义
    我还以为将整数转成tobject以后仍然是个整数呢
      

  8.   

    楼主这个"把INTEGER类型转成TOBJECT"这个说法不对
    实际只是把integer类型转成tobject类型的指针,32位整数转32位整数当然是可以的
    如果楼主只是想保存这个整数到只接受tobject类型参数的对象里  将integer转成tobject类型的指针是可以的
    用的时候再转回来还是原来的数字,不用释放,那个对象也不过是存放一个指针而已,事实上等于可以存放任何东西。整数可以直接存放,其他的东西可以将它们的指针存放进去
      

  9.   

    TObject本质上就是个指向对象实例的指针,指针么,和整数当然是可以来回转换的,就是当Integer穿着TObject的马甲的时候千万别访问它的成员,因为那其实是个不一定指向哪的指针,根本没有给它分配内存,后果……
    这回你说那个TObject用释放么?
      

  10.   

    "是这样的,我想把一个Integer值保存到ComboBox里面,但是这个控件的AddObject方法只接受TObject对象,于是我就把Integer转换为TObject了。"行的,用完之后步用释放!