需要动态创建的窗体上有一个控件会消耗2个资源,于是我就将此窗体改为动态创建,语句如下:IF not assigned(frmOption) THEN        BEGIN          frmOption:=TfrmOption.Create(Application)
          frmOption.show;END;我先没有用USES frmOption,也屏蔽了上面那几行语句,主窗体运行后用了1个资源;而后我又USES frmOption,又写上了动态创建的语句,主窗体运行并未主动创建frmOption,但却占用了3个资源,这说明动态创建的窗体调入了内存,但我并未
主动生成该窗体?这是为什么?

解决方案 »

  1.   

    看看.dpr文件,是否有创建该窗体的语句
      

  2.   

    1 1个资源?几个是什么意思
    2 在frmOption单元是否有静态的var frmOption:TfrmOption
    3 frmOption实在什么地方定义和引用的?
    你试试这段代码
    ...//这里看看
    with TfrmOption.Create(Application) do
    begin
    try
      showmodal;
    ...//这里看看
    fianlly
      free;
    end;
    ...//这里看看
    察看一下资源
      

  3.   

    是不是已经静态创建了,看看工程里面有没有创建的语句?
    program
    end.
      

  4.   

    Form2 := TForm2.Create(self);
    try
      Form2.Showmodal;
    finally
      Form2.Free;
    end;
      

  5.   

    只要uses单元,就会在程序启动时装入该单元,必然要耗费资源。
    和窗体创建时耗费的资源是两码事,不可混为一谈。
      

  6.   

    你的uses是在interface中还是在implementation中,另外就要检查options...中,
      

  7.   

    frmOption onDestroy里面
       frmOption := nil