你是Integer,根本不用考虑是否被摧毁。
因为TreeNode.Data的大小是32bit,而Integer也是32bit。你的做法只是一个值拷贝吧。放心的用,声明事情都没有。

解决方案 »

  1.   

    你是Integer,根本不用考虑是否被摧毁。
    因为TreeNode.Data的大小是32bit,而Integer也是32bit。你的做法只是一个值拷贝吧。放心的用,什么事情都没有。
      

  2.   

    可能是这样的
    由于data里放的是指向i的地址,所以当i摧毁后,只要i所在地址的内容还没有被改写的话,使用时就仍是正常的
    但显然,这样使用是很危险的
      

  3.   

    谢谢,小弟定时明朗。但我在DELPHI的在线帮助中,他将一个分配了内存的记录指针赋给了TreeNode.data,但最后没有看到他将分配的内存释放,是不是不用释放内存呀。
      

  4.   

    你没有使用内存,何谈释放。
    你只不过在欺骗Delphi罢了,让Data存储一个Integer,而不是一个指针。所以没有内存占用。
      

  5.   

    to chechy:是的,这个我懂了,我指的是在DELPHI在线帮助中的那个内容,不知道你看过没有,我好像没有看到他的释放。
    很谢谢你,我想还让这个帖子讨论一会儿,完了之后会加分的。每个人都有的。
      

  6.   

    1、TreeNode.data 是一个指针.指针是一个地址,实际上就是一个数值,所以
       TreeNode.data := Pointer(i);是正确的.
    2、pgMain.ActivePageIndex := Integer(Node.Data);是访问了这个指针本  
       身的值,所以没有错;但你肯定不能访问Node.Data指向的地址。
      

  7.   

    Integer是简单类型,是否里边存的就是i的值
    最好不要这么用,很危险,容易造成概念混淆