• 窗体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);
  • 相关阅读:
    PowerDesigner将PDM导出生成WORD文档
    哨兵机制
    redis 主从数据同步
    redis RDB
    redis AOF机制
    redis数据结构
    dependencyManagement 和 dependencies的区别
    同源策略 跨域资源共享
    高可用 可扩展 多层反向代理架构演进
    String 杂记
  • 原文地址:https://www.cnblogs.com/rogge7/p/5889527.html
Copyright © 2020-2023  润新知