Delphi显示窗体的“模式方式”与“非模式方式”

“模式窗体”可以简单的理解,用户必须在完成该窗体上的操作或关闭窗体后才能返回打开此窗体的窗体。

From.ShowDialog()方法

以模式方法显示窗体的,在被创建的窗体关闭之前它都不会返回。通过显示地调用Close方法或设置DialogResult属性可以关闭这种窗体。

From.Show()方法

以非模式方法显示新的窗体并且立即返回,并不会在当前激活的窗体和新窗体之间创建任何关系;这意味着现存的窗体可以被关闭,而新窗体仍然继续显示。

 

Showmodal()是个函数,Show()是个过程

一个窗口用Showmodal函数显示出来后,程序不会继续自己执行, 而是根据你对这个窗口的操作来执行, ,只有关闭了这个窗口后才会执行。

Form.ShowModal() 时相当于执行了一个 Call,主窗体是能够处理下一条消息,其它的窗体不接受用户的操作,ShowModal() 以下的代码在 ShowModal() 出的窗体被关闭前是不会被执行的,但并不影响父窗体的消息循环

一个窗口用Show过程显示出来后,代码一样往下执行的,即程序会继续执行

举例:

ShowModal 出来的对话框必须关掉才能处理其他窗体.也就是当前焦点不能转移到其他的窗体上,除非关掉。

Show 出来的对话框则可以将当前焦点转移到其他界面上。

Delphi 里 Show出来的一般是子窗体,对话框叫非模式对话框,ShowModal 出来的是主窗体,叫模式对话框.

fomr2.ShowModal时,要求Form2.Visiable=False,假使你设置为Visiable=True就会产生错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值