zoukankan      html  css  js  c++  java
  • 窗体Showmedol 遇到的奇怪异常: cannot make a visible window model

    //窗体Showmedol 遇到的奇怪异常: cannot make a visible window  model
    //背景:ShowModal A窗体,A窗体再ShowModal B窗体;A是透明背景窗体,B是提示窗体;
    
    //第一次使用该全局变量,使用完毕后,FreeAndNil,目的是不影响第二次使用(和重新初始化属性)
     if not Assigned(frmAd) then
                frmAd := TfrmAd.Create(nil);
              frmAd.SetUrl(r46002.Data.URL);
              if not Assigned(FrmChangePWTransparent) then
                FrmChangePWTransparent:=TFrmChangePWTransparent.Create(nil);
              FrmChangePWTransparent.fPopupForm :=frmAd;
              //FrmChangePWTransparent.FormStyle := fsNormal;
              //FrmChangePWTransparent.Visible := False;
              FrmChangePWTransparent.ShowModal;
              FreeAndNil(FrmChangePWTransparent);
    
    //第二次使用
     if not Assigned(frmRemind) then
            frmRemind := TfrmRemind.Create(nil);
          if not Assigned(FrmChangePWTransparent) then
            FrmChangePWTransparent:=TFrmChangePWTransparent.Create(nil);
          FrmChangePWTransparent.fPopupForm :=frmRemind;
          //FrmChangePWTransparent.FormStyle := fsNormal;
          //FrmChangePWTransparent.Visible := False;
          FrmChangePWTransparent.ShowModal;   //弹出透明窗体
          FreeAndNil(FrmChangePWTransparent);
    //但是会弹出异常 cannot make a visible window  model ,
    //百度了解:http://blog.sina.com.cn/s/blog_4b5f4fbc0100kt5p.html
    //修改:加多两句,如上面去掉注释。
        FrmChangePWTransparent.FormStyle := fsNormal;
        FrmChangePWTransparent.Visible := False;
    //还是无法解决问题。
    
    //解决:后来想既然是 make a visible window  model,猜想第一次使用完后 FrmChangePWTransparent 全局变量没有完全释放【很奇怪】,
    //别人就 另立 一个变量,解决问题。经验呀。
    
        var FrmTransparent: TFrmChangePWTransparent;
        
        if not Assigned(frmRemind) then
            frmRemind := TfrmRemind.Create(nil);
          if not Assigned(FrmTransparent) then
            FrmTransparent:=TFrmChangePWTransparent.Create(nil);
          FrmTransparent.fPopupForm :=frmRemind;  //
          FrmTransparent.FormStyle := fsNormal;
          FrmTransparent.Visible := False;
          FrmTransparent.ShowModal;   //弹出透明窗体
          FreeAndNil(FrmTransparent);
  • 相关阅读:
    HandlerMethodArgumentResolver[1]-Controller入参封装
    SpringMVC拦截器
    处理器映射器HandlerMapping
    SpringBoot启动流程
    SpringBoot自动配置原理
    DeferredImportSelector的处理
    Spring的SPI机制【spring.factories】
    Spring 5.3.x源码构建
    分析jvm的cpu,内存,回收问题
    F.A.Q常见问题处理
  • 原文地址:https://www.cnblogs.com/rogge7/p/5889527.html
Copyright © 2011-2022 走看看