大家好,近期使用DevExpress,发现我的程序出现很多莫名其妙的问题,举例其中一个
program Project1;uses
  Forms,
  Windows,
  Controls,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};{$R *.res}begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form2 := TForm2.Create(Application);
  if Form2.ShowModal = mrok then
    Application.Run
  else Application.Terminate;
end.其中form1中有个image,载入一张png图,form2类似登陆,在执行完Application.Terminate后会报错,(access violation....),其余问题都是在这报错,请问你们遇到过这种情况吗?怎么解决?

解决方案 »

  1.   

    var
      LoginResult : integer;begin
      Application.Initialize;
      
      Form2 := TForm2.Create(nil);
      LoginResult := Form2.ShowModal;
      FreeAndNil(Form2);  if LoginResult = mrok then begin    
        Application.CreateForm(TForm1, Form1);
        Application.Run;
      end else 
        Application.Terminate;
    end.
      

  2.   

    登录界面可不是这样做的。
    假设form1是主窗口,form2是登录窗口
    你应该在form1 Create时隐藏自身显示form2,form2中关闭或完成登录后关闭自己显示form1。
      

  3.   

    Application.Terminate; 
    请加上freeandnil(form2);