我在网上下载了一个多线程例子,主程序如下。
单步跟踪发现,执行到setupform.ShowModal时就提示下面错误:
Exception EAccessViolation in module SimElavotor.exe at 0006B003.
Access violation at address 0046B003 in module 'SimElavotor.exe'. Read of address 00000000.
请问为什么会出现这种错误,如何解决?program SimElavotor;uses
  Forms,
  Setupin in 'Setupin.pas' {setupForm},
  main in 'main.pas' {mainform},
  Define in 'Define.pas';{$R *.res}
begin
  Application.Initialize;
  setupform.ShowModal;
  Application.CreateForm(Tmainform, mainform);
  Application.Run;
end.

解决方案 »

  1.   

    问题是setupform还未create,就ShowModal。可以尝试改为:
    Application.Initialize;
    Application.CreateForm(Tmainform, mainform);
    Application.CreateForm(Tsetupform,setupform)
    setupform.ShowModal;Application.Run;
      

  2.   

    guanking,你好,这样修改后不会出现Access violation错误了,但是,执行到setupform.ShowModal后,不会显示表单。不知什么原因
      

  3.   

    我出现的也是这个情况
    Application.CreateForm(TFrm_Index, Frm_Index);先加载再调用就可以了。