我是delphi 新手,从前学vb的,请教各位高手一个问题,在delphi中在什末时候用create,

解决方案 »

  1.   

    你定义一个类,使用前需要Create,使用系统提供的类之前也要Create,我也知道不多,但遇到的Create许多情况下都是如此
      

  2.   

    你动态创建的东西都要用Create
      

  3.   

    要实例化一个类就用Create
    什么是类?编程时除了Boolean,Integer,Float,String,PChar等剩下的都是类。
    用之前要Create,
    用完了要Free.
      

  4.   

    谢谢指教,但是比如这样 a:=function1 ; 而函数 function1 返回类型为对象,那a 用不用 create ,为啥?
      

  5.   

    当然要 因为a是对象,假设a是TStringList的话 就得先a:=TStringList.Create;
    用后a.free
      

  6.   

    那我没有CREATE 也没有出错呀
      

  7.   

    ctreate就是一个类的实例的构造函数(参看c++)
    free就是析构函数
      

  8.   

    函数传递的是对象指针,指针指向了一个已经创建的对象实例,当然不用创建,因为对象已经在堆上分配了内存Delphi中类是抽象的概念,必须创建实例才能使用,即在堆上为其分配内存,Create就是上面说的构造函数,但析构函数是Destory,不是Free,Free只是判断Self(对象指针) 是否为 nil来确定是否调用析构函数,因为堆上分配的内存系统不会自动回收,必须由开发人员释放!通过Obj := TObject.Create调用构造函数,这里的TObject是类引用,Obj是对象引用!
      

  9.   

    http://www.skin-studio.com
        有的时候,我们开发了一套很有市场价值的软件,可是发觉市场销售量却很低,原来真正的原因是软件的包装不够漂亮。公司采取各种渠道来解决问题。招聘大量的美工人员,可是,却发觉程序员的水平跟不上步伐,专门设立一个研究部门,却发觉需要花费巨额的人力物力,采用第三方控件吧,却要支费大量的注册费用或者版权使用费用,而且一般都以动态链接库*.DLL 或者控件*.OCX 绑定到我们的软件中。并且,控件功能扩展需要花费一定的升级费用才能够实现。您希望一次花费为数不多的费用就能弥补所有的不足吗...皮肤类不以任何形式的控件*.OCX,动态链接库*.DLL出售给用户,所以,你不必担心是否以源代码的方式出售给用户
        皮肤工作室皮肤类(VC开发企业版)暑假期间正在热销中,优惠活动截至到2003.9月。售价仅仅人民币500元整(终身使用版权);并且,在功能上可以任意扩展,真可谓手到擒来。具体包括皮肤对话框,皮肤按扭,皮肤进度条,皮肤控制条,皮肤动画标签类,皮肤面版类... 全部功能都以源代码的方式出售,使你可以制作真正意义上的具有自主版权皮肤功能的软件,还在等什么,赶快行动吧!!!
       真正令我们心动的时刻到了,同时随送的一些经典皮肤示例源代码包括多彩取色机XP,鼠标记录机,多彩影音伴侣等等
    你如果希望购买我们的产品,请到我们网站的购买方式页面 http://www.skin-studio.com/bankcard.htm了解更多信息
      

  10.   

    谢谢指教,但是比如这样 a:=function1 ; 而函数 function1 返回类型为对象,那a 用不用 create ,为啥?在这里a不必用create,因为function1返回类型为对象,就是说a(Delphi中的对象变量其实都是指针,虽然不需要象指针那样的写法)指向的这个对象已经被建立,不必重复建立。
    总之对象总是要建立的,但对象变量,如a等如果指向一个已经建立的对象就不必重新建立。
      

  11.   

    谢谢指教,比如说一个function ,返回是对象那它在什末时候create,什末时候free
      

  12.   

    动态创建的东西要用Create