关于Delphi错误:Cannot make a visible window modal

Delphi的fsMDIChild类型的窗体是不能使用ShowModal的,否则会弹出"Cannot make a visible window modal"异常,

但是把fsMDIChild改为fsNormal类型之后使用ShowModal,依旧会弹出"Cannot make a visible window modal",

经研究确定这是Delphi7的一个Bug,Delphi7之后的版本暂未使用,不知这个Bug是否还存在,处理的办法是先确定窗体模式已改回为fsNormal模式,

然后用记事本打开窗体的dfm文件,找到Visible=True,把这一句删除了,再保存,然后重新编译运行,就不会再有"Cannot
make a visible window modal"异常,弹出来了,在D7+XP环境下测试通过.

补充:知道xe7此bug依然存在,解决方法同上。

解决方法来源

http://blog.sina.com.cn/s/blog_4b5f4fbc0100kt5p.html

时间: 2024-10-12 13:36:22

关于Delphi错误:Cannot make a visible window modal的相关文章

DELPHI中Showmodal与Show的区别

Showmodal是个函数,Show是个过程 1.Showmodal: 概念:   当你调用一个窗口用SHOWMODAL时,当这个窗口显示出来后, 程序不会继续执行 ShowModal 后的代码 ,而是根据你对这个窗口的操作来执行, 只有关闭了这个窗口后才会执行ShowModal 后的代码 属性 :   FormStyle 改为 fsNormal,visible 改为 false           ShowModal 出来的对话框必须关掉才能处理其他窗体.也就是当前焦点不能转移到其他的窗体上

Context 对应的Unable to add window 错误记录

近日在使用 AlertDialog时发现一个错误:Unable to add window -- token null is not for an application,从前面观察是无法添加一个新的窗口到这个context,后来想了想前面是用的getApplicationContext()传递过来的context, 看来不能往context中加window吧,就改成了activity.this,代表一个具体的activity了,这样就OK了,记录下以后应该能解决这种添加新窗口传递context

js中的window.open返回object的错误

系统中用javascript中的window.open后,页面返回了一个[object].因为系统的原因,必需使用href="javascript:window.open()"这样的格式.所以只能通过以下办法解决. 解决window.open后返回object的错误 <a href="javascript:void(window.open('','','width=200,height=200'))">window.open()</a> 只在

Javascript中window.opener的一点小总结

以前一直认为window.opener只有在window.open方法打开下的窗口才可以访问,没想到即使是a链接打开的页面的照样可以访问.window.opener指向父窗口,也就是来源窗口.可以利用window.opener获取来源页面location.href信息等,也可以操作来源 页面的DOM,十分强大 但下面的情况,window.opener的值为null 1,跨域的情况如果是www.a.com/1.html链接到www.b.com/2.html,这种情况会丢失2,利用的javascri

Report Machine(RM)报表控件简单用法-delphi

RM(Report Machine)是一个功能强大的Delphi报表控件包.使用它可以制作出非常复杂的报表.下面讲述最简单的用法: 在Form上放上两个数据库控件:ADOConnection和ADOQuery设置好ADOConnection的ConnectionString.LoginPrompt=False.ADOQuery的Connection指向ADOConnection.ADOQuery的SQL设置好数据查询语句. 在Form上放上两个RM报表控件:RMDBDataSet和RMRepor

javascript类型系统之Window

目录 [1]引用 [2]特性 [3]属性 [4]方法 编码方法 eval() 数字方法 前面的话 window对象是Web浏览器中javascript的一个终极兜底儿对象,在作用域中处于最末端,是一个包含所有对象的对象.所有在全局作用域中定义的属性和函数都是window对象的属性 var myStringVar = 'myString'; var myFunctionVar = function(){}; console.log('myStringVar' in window);//true c

bug_android.view.WindowManager$BadTokenException: Unable to add window -- token

========5 java.lang.IllegalArgumentException: View not attached to window manager at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:653) at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:349) at android.view.Wi

js错误处理与调试理论和办法

阅读本文,以抓取有用的信息(可以以我加粗为参考)为主,老外写的 废话较多 ECMA-262 第 3 版引入了 try-catch 语句,作为 JavaScript 中处理异常的一种标准方式.基本的语 法如下所示,显而易见,这与 Java 中的 try-catch 语句是完全相同的. try{ // 可能会导致错误的代码 } catch(error){ // 在错误发生时怎么处理 } 也就是说, 我们应该把所有可能会抛出错误的代码都放在 try 语句块中, 而把那些用于错误处理的 代码放在 cat

Javascript之BOM(window对象)

摘自Rocky Ren 分享到 Javascript之BOM(window对象) ECMAScript是JavaScript的核心,但在web使用JavaScript,那么BOM(浏览器对象模型)才是真正的核心. BOM的核心对象是window,它表示浏览器的一个实例. 在浏览器中,window对象既是JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象.也就是说,在网页中定义的任何一个变量.对象和函数以window作为其Global对象. 1.全局作用域