procedure TForm1.CompanyInformation1Click(Sender: TObject);
begin
TForm2.Create(Application);
form2.show;
end;debugger excetion notification: (error prompt)
project project1.exe raise excetion class EAccessViolation with message' Access violation at address 006c5579 in module 'vlc60.bpl'.
read of address 0000004c'. process stopped.project -> option -> package下的所有*.bpl都选了。
而且也将vlc60.bpl copy进同一个目录下。 还是有此错误。project -> option -> linker 下的max stack size: 也设成$00400000了。到底真正原因在哪?

解决方案 »

  1.   

    form2:=TForm2.Create(Application);
    form2.show;
      

  2.   

    试过不行。sorry,我没有说清楚: 我的project里面有7个form.只有form1是auto-create form。 其余的是available form。在project中的代码,这样写code的话,出错
    Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      form2:=Tform2.Create(application);
      form3:=Tform3.Create(application);
      form4:=Tform4.Create(application);
      form5:=Tform5.Create(application);
      form6:=Tform6.Create(application);
      form7:=Tform7.Create(application);
    Application.Run;如果连form1都是用tform1.create的话,也报出错。如果所有form都是application.createform的话,build与run都没有问题,但package后在另外一个没有安装delphi的os就报vlc60.bpl warning出错。关闭了。请教。。
    如果需要form1做主窗口,其余form做show出来的窗口的话。
    project代码应该怎么写?还有,我的问题是属于form的问题吗?
    一个project里面7个form同时auto-create的话,会不会有stack overflow的问题产生? 谢谢。
      

  3.   

    好像是你用了什么第三方的控件,没有注册
    对了,你的编译选项先不要选使用runtime库的那一项
      

  4.   

    你打开project-->option-->把左边 自动创建 除主窗体外,其它的全都放到右边,在程序里需要的时候手工创建.像你这样写,占的资料不得了。手工创建
    form2:=TForm2.Create(Application);
    form2.show;
      

  5.   

    楼上的想法与我的一样,我的设想也是所有都是application.createform来create的话,占用太多资源了,导致内存出错。 但小第是初学delphi,对手工创建不太熟悉。试过这样不行:
    form2:=TForm2.Create(Application);
    form2.show;
    在form1的button1里面调用form2的代码。除了这样写,还有其他方法吗?
      

  6.   

    unit Unit1;var
      Form1: TForm1;
    implementation
    uses unit2;procedure TForm1.button1click(Sender: TObject);
    begin
       form1.Hide;
       form4:=tform4.create(application);
       form4.show;
    end;就这行代码,build的时候没问题, run的时候到了   form4:=tform4.create(application);
    就出问题了。。
      

  7.   

    你说的手动创建应该就象My_First说的那样
    with TForm2.Create(Form2) do
    begin
      show;
      sleep(2000);
      free;
    end;
    如果想占用比较小的内存,可以使用动态创建
      

  8.   

    还是不行。 手动创建语句:TForm2.Create(Form2)连build的时候也不能通过。请问动态创建应该如何写?