发布软件时因为窗体自动加载次序不对导致报错00000000

问题:发布软件时因为窗体自动加载次序不对导致报错00000000,因为登录界面需要先于主窗体mainform加载,但是这样的话会报错

解决方法:

方法1.通过手动创建窗体的方法 手动释放;

第1步:先uses里引用要加载的窗体单元名,然后在需要添加的事件里添加代码

procedure TForm3.FormShow(Sender: TObject);
begin
//显示登陆窗口
  with TFLogin.Create(nil) do
  begin
    if showmodal <> mrok then
    begin
      ShowMessage('登陆失败');
    end;
  end;
//    if Self.FLoginInstance.showmodal <> mrok then
//    begin
//      ShowMessage('登陆失败');
//    end;
end;

第2步,注释掉手动已经创建的要引用的但是之前设的自动启动的窗体

 

方法2.把要预先显示的窗体制作成一个类,加载成主窗体的一部分来显示

第1步:删除或注释掉预先显示的窗体定义的全局变量名

第2步,在主窗口里去掉在implementation 里面的引用,在interface里添加引用

第3步,注释掉自动创建窗体启动的代码:

 

 

原文地址:https://www.cnblogs.com/ddxxxb/p/7077830.html