由于FORM比较多,程序启动的时候很慢,想让其他form在点击的时候再生成该怎么做。是否是在project1中把
  Application.CreateForm(TForm3, Form3);删除。
然后在想调用的地方如。
procedure TForm1.N31Click(Sender: TObject);
begin
form3.show;
end;
中改为
procedure TForm1.N31Click(Sender: TObject);
begin
Application.CreateForm(TForm3, Form3);
form3.show;
end;
但是这样,好象在别的电脑上执行可执行程序的时候出现灾难性错误。该如何改?

解决方案 »

  1.   

    form3:=tform3.create(self);
    form3.showmodal;
    form3.free;
    把PROJECT1中的哪个删掉,在菜单PROJECT的选项里把FORM3等放到手动创建里
      

  2.   

    要在uses中引用unit3
    procedure TForm1.N31Click(Sender: TObject);
    var
       form3:Tform3;
    begin
       form3:=Tform3.Create(self);
       form3.Show;
       form3.Update;end;
      

  3.   

    搞错,
    var 
       form3:Tform3
    不用,呵呵,写成了启动窗口的做法了
      

  4.   

    TO chenjun631(小菜)
    照你这样,光把exe文件COPY到别的机器上还是会出灾难性故障。
      

  5.   

    好象是FORM里面的数据库组件出问题了。不知道是怎么回事。
      

  6.   

    用到了adoconnection,adotable,adoquery.dbedit发现把adoconnection和adotable的connected 和active 属性预置成true就出2个灾难性错误的报警,还有一个灾难性错误不知道怎么来的。