zoukankan      html  css  js  c++  java
  • 窗体Showmedol 遇到的奇怪异常-->进阶问题

    procedure SetTransparentForm (popupFrm:TForm;Color:TColor;AlphaBlendValue:Integer);
    var FrmTransparent: TFrmTransparentForm;
    begin
      if not Assigned(FrmTransparent) then
        FrmTransparent:=TFrmTransparentForm.Create(nil);
      FrmTransparent.fPopupForm :=popupFrm;  //
      FrmTransparent.Color :=TColor(Color);  //clTeal;//
      FrmTransparent.AlphaBlendValue:=AlphaBlendValue;
      FrmTransparent.FormStyle := fsNormal;
      FrmTransparent.Visible := False;
      FrmTransparent.ShowModal;   //弹出透明窗体
      FreeAndNil(FrmTransparent);
    end;
    //以上代码在 exe中没有任何问题,当把代码移到公共包中后:
    //出现局部变量赋值异常(线程或主进程调用),各种调试测试,发现奇葩问题点,做以下调整和解释:
    //局部变量和全局变量 若不首先赋值 :=nil 都会有异常。
    procedure SetTransparentForm (popupFrm:TForm;Color:TColor;AlphaBlendValue:Integer);
    var FrmTransparent: TFrmTransparentForm;
    begin
      //------------方法一
      FrmTransparent := nil;//用私有变量,若没有此句,此段会异常,估计局部变量引起的 。^_^
      if not Assigned(FrmTransparent) then
        FrmTransparent:=TFrmTransparentForm.Create(nil);
      FrmTransparent.fPopupForm :=popupFrm;  //
      FrmTransparent.Color :=TColor(Color);  //clTeal;//
      FrmTransparent.AlphaBlendValue:=AlphaBlendValue;
      FrmTransparent.FormStyle := fsNormal;
      FrmTransparent.Visible := False;
      FrmTransparent.ShowModal;   //弹出透明窗体
      FreeAndNil(FrmTransparent);
      //------------方法二
      {FrmTransparentForm:=nil; //用全局变量,没有此句 会偶尔出现 cannot make a visible window  model;估计线程原因。
      if not Assigned(FrmTransparentForm) then
        FrmTransparentForm:=TFrmTransparentForm.Create(nil);
      FrmTransparentForm.fPopupForm :=popupFrm;  //
      FrmTransparentForm.Color :=TColor(Color);
      FrmTransparentForm.AlphaBlendValue:=AlphaBlendValue;
      FrmTransparentForm.FormStyle := fsNormal;
      FrmTransparentForm.Visible := False;
      FrmTransparentForm.ShowModal;   //弹出透明窗体
      FreeAndNil(FrmTransparentForm); }
    end;
  • 相关阅读:
    顺时针打印二维矩阵
    hbase的rowKey设计原则
    关于这段时间学习 EntityFramework的 一点感悟
    一次排序序号的补充
    我的第一段jQuery代码
    非常郁闷的 .NET中程序集的动态加载
    关于EF6的记录Sql语句 与 EntityFramework.Extend 的诟病
    排序更改
    ZhyjEye 简介
    js数组去重的4个方法
  • 原文地址:https://www.cnblogs.com/rogge7/p/5945225.html
Copyright © 2011-2022 走看看