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;
  • 相关阅读:
    下载程序的疑问
    Beaglebone环境建立:电源适配器供电+网线ssh
    Android百分比布局支持库介绍——com.android.support:percent
    android应用中去掉标题栏的方法
    自己写的进度条
    返回图片指定点的RGB值
    修改指定图片的分辨率
    跨域访问的问题和解决过程
    C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher
    Sql Server字符串函数
  • 原文地址:https://www.cnblogs.com/rogge7/p/5945225.html
Copyright © 2011-2022 走看看