var
m:TBitMap;//这儿只是相当于定义了一个指针
m:=TBitMap.Create;// 这儿才对其分配内存。

解决方案 »

  1.   

    在Delphi里,所以对类的声明,仅仅是定义了一个类的参考或者说是指针。如果不将类实例话,就不能调用类的对象(静态对象除外)。这点和C++有本质的不同。
      

  2.   

    变量如果是哪些integer char哪当然可以立刻赋值,如果是Class
      

  3.   

    听各位讲好像Classs需要Create才能使用,那么请问下面的语句虽然TForm1是类,
    声明:var
             Form1: TForm1;
    而后Form1完全可以不用Create,就能使用了!为什么??//-----------代码见下面!
    type
      TForm1 = class(TForm)
        Function xx(var y:integer):Integer;
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation{$R *.DFM}
    Function xx(var y:integer):Integer;
    //......
    End;
    //........
    End.
      

  4.   

    是因为在Project的source里已经调用了application.CreateForm(Tform1,Form1);
      

  5.   

    就你所提的问题,我想说点的是两点:
      1、若是直接Delphi本身的控件,我们可以不用creat或free,因为窗体本身管理其创建和释放;
      2、若是自己定义的,或者虽是Delphi控件,但是我们仍然不直接使用,那我们就必须creat、free。