开发者社区> 冷眼看世风> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Delphi 使窗体Showmodal后可以操作其他窗体

简介: 对话框ShowModal之后不能操作其它窗口,实际上是因为Windows Disable了其它窗口。所以当你需要在模态对话框中访问其它已经可见的窗口时,需要用EnableWindow API来激活对应的窗口。
+关注继续查看

对话框ShowModal之后不能操作其它窗口,实际上是因为Windows Disable了其它窗口。所以当你需要在模态对话框中访问其它已经可见的窗口时,需要用EnableWindow API来激活对应的窗口。

例如:

form2.showmodal;

在form2的OnShow事件中:

enablewindow(form1.handle,true);

如何使用Show方法来显示一个模态窗口

 

 

  我们知道在Delphi中显示一个窗口有两种方式,模态方式显示(ShowModal)和非模态方式显示(Show),模态方式显示窗口时,必须在自身关闭后才能使父窗口起作用,但有时我们想要实现一个窗口,既要具有模态窗口的特性,但又要能从父窗口中控制它,如显示一个表示处理进行过程的进度框。利用DisableTaskWindows和 EnableTaskWindows 可以达到这一效果。

  下面是演示实现程序:

procedure TForm1.ShowProgressDlg;

var

WindowList: Pointer;

begin

{除了Form2外使所有窗口无效}

WindowList := DisableTaskWindows(Form2.Handle);

try

Form2.Show;

{循环执行任务}

Form2.ProgressBar1.Position :=

Form2.ProgressBar1.Position + 1;

{循环结束}

finally

{重新使所有窗口有效}

EnableTaskWindows(WindowList);

Form2.Close;

end;

end;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
首批认证!阿里云E2 BizWorks产品通过中国信通院业务中台建设和运营能力评估认证!
8月12日,“2022数字化转型发展高峰论坛”在北京落下帷幕,主办单位为中国信息通信研究院、中国通信标准化协会。作为数字化转型领域的权威行业盛会,本届论坛给业界带来了一场数字化转型的思想盛宴、技术盛宴和成果盛宴。在本届峰会上,阿里云E2 BizWorks成为首批通过中国信通院业务中台建设与运营认证的产品。
663 0
钉钉工作台开放能力建设阶段性总结
工作台的平台化开放能力建设已经走了近3年的时间,包括定制工作台的开放、工作台模板的开放、工作台组件的开放等等。本文主要是对过程中一些关键能力的总结和思考,欢迎交流。工作台的类型工作台作为企业业务数字化的统一门户,是组织用于提升管理效率、实现业务在线的平台。工作台的组织就是钉钉上的组织,针对不同的组织规模,提供了多种类型工作台:角色工作台、行业工作台和自定义工作台。角色工作台是对不同的角色,例如财务
103 0
阿里公布2018Q3财报,上半年云计算业务首次突破100亿元
此次阿里54%的营收增长在各大互联网以及科技巨头中实属强势。
1506 0
百余阿里打假联盟成员晒成绩单:协助警方打掉假货近10亿
提供近200条线索、协助逮捕涉案人员300余人、涉案金额近10亿元……8月3日,已有百余成员的阿里巴巴打假联盟晒出成绩单,对外公布了最新的打假成果。
1061 0
Delphi的窗体停靠
Delphi的窗体停靠 frm2 = TForm2.Create(self); frm2.ManualDock(Panel2, nil, alClient)  为了避免停靠frm2时闪烁,可提前设置frm2 .
823 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载