各位前辈:
delphi7.0>工程>选项中对窗体的设置有:auto-crate forms
与available forms二种,请问它们究竟是什么意思?有什么区别?我一般需要对所有的窗体进行类似的操作吗?

解决方案 »

  1.   

    auto create窗体在程序运行时自动创建,你可以project1.dcu文件中看到。
    available forms在程序运行时并不创建,需要你手动创建.如果程序中窗体较多可以采用,使暂时用不到的窗体不创建,减少内存占用,加快程序启动速度。创建窗体uses abnormal这个单元文件名,然后
    procedure TMainForm.AbnormalExecute(Sender: TObject);
    begin
       try
       FrmAbnormal:=TFrmAbnormal.Create(self);
       FrmAbnormal.ShowModal;
       Finally
       FreeAndNil(FrmAbnormal);
       end;
    end
      

  2.   

    这里的自动创建是指程序运行时的对窗体的调用不是你对设计窗体的创建
    begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TDataModule1, DataModule1);  Application.Run;
    end.
    你可以看到程序运行前时先要将所有的窗体都创建,这里的form1就是自动窗体,虽然创建了但不可见
    要看到该窗体需要Form1.show如果你在程序中还有设计了一个窗体form2 选中它为available forms
    则它不会在Application.Run前创建
    要调用他需要手动创建比如一个buttonclick
    begin
       try
       FrmAbnormal:=TFrmAbnormal.Create(self);//此时才创建如同Application.CreateForm(TMainForm, MainForm);
       FrmAbnormal.ShowModal;//如同form1.show;
       Finally
       FreeAndNil(FrmAbnormal);
       end;
    end