窗体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;
窗体Showmedol 遇到的奇怪异常-->进阶问题的更多相关文章
- 窗体Showmedol 遇到的奇怪异常: cannot make a visible window model
//窗体Showmedol 遇到的奇怪异常: cannot make a visible window model //背景:ShowModal A窗体,A窗体再ShowModal B窗体:A是透明背 ...
- 3.Java异常进阶
3.JAVA异常进阶 1.Run函数中抛出的异常 1.run函数不会抛出异常 2.run函数的异常会交给UncaughtExceptionhandler处理 3.默认的UncaughtExceptio ...
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
导出到Excel方法: <span style="color: rgb(0, 0, 255);">public</span> <span style= ...
- PyQt通过resize改变窗体大小时ListWidget显示异常
前几天开始的pygame音乐播放器Doco,做的差不多了,上午做到了歌词显示和搜索页面.遇到bug,即通过resize改变ui大小时ListWidget显示异常 #目的: 增加一部分窗口用来显示歌词和 ...
- [转]Eclipse下开发Struts奇怪异常:org.apache.struts.taglib.bean.CookieTei
今天早上开始在Eclipse下学习struts,于是按照李兴华老师的<struts入门视频教程>一步一步地充满快乐的学习,等把登陆程序写完,打开浏览器准备运行的时候,奇怪的异常产生了,异常 ...
- C#解决关闭多线程的form主窗体时抛出ObjectDisposedException 异常
一.现象: 我在主窗体新建线程,使用子线程来处理接收到的数据,并且更新窗体显示内容,但关闭主窗体程序之后就程序就报错,如下所示: 二.分析问题: 由于新建线程的处理函数里边是一直死循环处理数据,虽然窗 ...
- ArcGIS Server SOE开发之奇怪异常:
添加之后结果显示如下:fjsontokenezkBvir0Tj5q31UEst7pTFPwrwocmHklCajKeh-xXM91qWdBXDuQMmtGcaHaaXCJ 具体如下: 该SOE扩展在另 ...
- ArcEngine奇怪异常:HRESULT:0x80040351
错误如图 根据该博客,http://blog.csdn.net/u011609113/article/details/51155116, 显示该错误为Duplicate Field Names wit ...
- awk 的一个奇怪异常
awk: cmd. line:1: (FILENAME=- FNR=192) fatal: print to "standard output" failed (No space ...
随机推荐
- 设备旋转,创建水平模式布局--Android studio
1.在项目工具窗口中,右键单击res目录后选择new--Android resource directory菜单项. 2.从资源类型Resource type列表中选择layout,保持Source ...
- 手机通过数据线连接电脑后,找不到设备--Android Studio
手机通过数据线连接电脑后,找不到可用的设备.允许USB调试,,因为小米手机还要设置USB开发者模式. 1.打开设置/关于手机 四次点击“MIUI版本”如图: 2.返回上一页打开更多设置 看到开发者选项 ...
- JDBC入门学习
Introduction What's JDBC JDBC stands for Java Database Connectivity, which is a standard Java API fo ...
- beaglebone black 烧写系统后释放空间。
执行 ./opt/script/toolsgrow_partition.sh就能将2g的空间变为sd卡的大小,我的是8g,执行后就是7.7g
- [Machine Learning] Active Learning
1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...
- Windows 8.1开发环境初始化
Windows 8.1 en 64bit 以管理员权限运行CMD,命令:POWERCFG -H OFF,删除hiberfil.sys
- 【bzoj1606】[Usaco2008 Dec]Hay For Sale 购买干草
题目描述 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包干草,每一包都有它的体 ...
- 如何删除已安装的Windows服务
1) 开始-运行,输入regedit命令. (Windows键+R,输入regdeit) 2) 回车后会弹出一个窗口:注册编辑器.找到 HKEY_LOCAL_MACHINE\SYSTEM\Curre ...
- Lamda表达式使用
public class Lambda { public static void main(String[] args) { Lambda lambda=new Lambda(); String so ...
- IP变化,SVN和数据库的修改
最近公司换了运营商,将启用新的IP地址,将以前项目的端口映射处理好之外,还需要切换SVN的地址. 项目开发中有可能要修改SVN的IP地址,entries文件里面包含svn服务器的地址信息.每个文件夹都 ...