我建立了一个项目,有一个窗体,Unit1引用Unit2,Unit2中有类的声明,如何能在Unit1中创建这个类的实例,并且显示出来。
这个类可以注册成控件来使用,为什么在窗体中直接使用不行?

解决方案 »

  1.   

    uint1
    var
      a: Tyourcontrolname;
    begin
      a:=Tyourcontrolname.create(self);
      a.yourmethod.....
      
    end;
      

  2.   

    呵呵,熟人的问题当然要回答了,呵呵既然你在Unit1引用了Unit2中定义的类,那么直接创建实例就可以了!SomeObject:=TSomeClass.Create(Self);不过需要注意几点:一.由于你的实例窗体文件中创建的,所以已经指定了Owner,因此没有必要自己显式的释放了;二.如果你这个类是做成了控件的形式,而你又需要将它显示出来,所以创建后你应当指定这个实例的Parent属性,否则这个实例不会显示的!OK????
      

  3.   

    补充:任何实例说白了都是指向堆中对象实体的指针,而由于堆中的任何东西都是无法自动释放的,所以你需要显式的调用Destroy(或Free)或Dispose来释放,但当在创建对象时指定了Owner的情况下不需要在自己释放,因为这个时候释放工作已经由Owner完成了!另外,创建对象后需要赋予对象的Parent属性,否则没有其他对象负责绘画你创建的对象,因此你看不到你自己创建的东西,即使你使用了Show方法!
      

  4.   

    我今天信誉分刚减少了2分,真TMD!