说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi中TApplication类

HTML文档下载 WORD文档下载 PDF文档下载
Delphi中TApplication类

Delphi是一种面向对象的编程语言,由于它采用完全集成OOP的优点,因此使它成为目前十分流行的Windows开发工具。在Delphi包含的众多类中,TApplication是一个有着十分重要作用的类。TApplication类是用于描述Delphi编制的应用程序的一个类。通过对这个类的灵活应用可以编制许多有特点的程序。下面我们就举几个这方面的例子。

1 检测当前Windows程序是否被激活:

Tapplication类有一个属性——Active,这个属性就可以描述当前运行的程序是否被激活,成为Windows的焦点。检测的代码如下:

If Application.Active=False then

ShowMessage(’当前窗口没有被激活’);

2 取得当前程序的名称:

Tapplication类的EXEName属性可以返回这个可执行程序的完整文件名(包含路径)。实现的代码如下所示:

ShowMessage(Application.ExeName);

3 改变程序极小化时的标题

如果您细心观察可以发现,一些程序的标题和程序的名称并不一致,尤其是一些英文程序,窗体的标题栏比较长,可以容纳比较多的文字,而在最小化时,往往变成了很少的几个字母。这中间起作用的就是Tapplication类的Title属性。这个属性决定了程序最小化时的标题,而窗口中标题栏的标题是由Form的Caption属性来决定的。其代码如下:

Form1.Caption:=’ 窗口的标题’;

Application.Title:=’程序的标题’;

其实我们也可以在在程序设计时指定Tapplication类的Title属性值。操作的方法是在开发环境中拉下Project菜单

选择Options菜单时弹出如图1 (略)的对话框。在这个对话框中的Title栏中填写程序的标题一样也可以达到这种效果。并且因为一般的工程文件都是以英文命名的,所以程序运行过程中弹出的消息框中的标题是英文。但在指定了这个属性之后,这个程序的所有消息窗口的标题都变为Title的值。这就使得程序看起来更加完整。

4 指明程序的主窗口

Windows系统中的界面都是窗口,但一般来讲有一个主窗口。Tapplication的MainForm属性就可以返回程序的主窗口。

5 显示消息框

Delphi有许多显示消息框的函数与过程,比较常用的是ShowMessage,它用起来虽然十分方便,但是却有一个问题,那就是这个消息框的按钮是以英文显示的。如果要生成一个含有中文显示的按钮就要求助于Tapplication的MessageBox函数了。这个函数的原形如下:

function MessageBox(Text

Caption: Char; Flags: Longint): Integer;

在这个函数中,前两项分别是显示的提示信息和消息窗口的标题,Flags是一个长整值,用来指定按钮的个数及功能。熟悉Delphi的用户可能会注意到,这个函数和Delphi 3所提供的同名函数有一点不同,那不是这个版本中字符串参数都以字符的形式给出,而不再要求将其转化成指针。我们在使用时要注意加以区别。

Application.MessageBox('需要存盘吗?'

'提示信息'

MB_OKCANCEL); 这个语句在运行时显示的样式如图2 (略) 所示。

最后就这个函数的返回值作一些说明,实际上这个函数返回的是一个整型的数值,而这个数值被系统指定了具体的含义,比如:按下“确定”按钮时返回的值是“1”,而其它按钮的值列在表 1 中。

表 1 按钮的意义及系统中对其定义的值

按钮的意义 按下此按钮时函数返回的值

IDABORT 3

IDCANCEL 2

IDIGNORE 5

IDNO 7

IDOK 1

IDRETRY 4

IDYES 6

6 控制窗口的尺寸

一般可以用窗口手柄来调整窗口的尺寸,但是也可以用Application的事件来调整。实现的方法是用以下两个过程:

Application.Minimized;

Application.Restore;

前一个过程用来将程序的主窗口最小化,而后一个过程用来将最小化的窗口恢复到原来的尺寸。

7 链接联机帮助文件

Application的CurrentHelpFile属性能够指定当前程序所用的联机帮助文件的文件名。这个属性经常与另一个方法联合在一起使用。举例如下:

Application.HelpFile := '联机帮助文件名';

Application.HelpJump('联机帮助文件的主题’)

通过这一命令组合,我们就能使系统弹出一个显示某主题的联机帮助文件。

8 在程序运行时动态地创建窗口

一般情况下,窗口是在设计时加入到工程项目中的,但是有时也需要我们在程序运行时动态地加入窗口,这就要用到Application 的CreateForm过程,举例如下:

Form3:Tform3; //声明窗口类

Application.CreateForm(TForm3

Form3); //创建窗口

9 结束程序

虽然我们可以用关闭主窗口的方法来关闭一个程序,但是更好的办法是用Application的Terminate过程。它能够起到更彻底地关闭程序的效果。

10 Destroy 属性.

虽然Delphi提供了这一属性

但是并不提倡使用它

如果要终结程序就要调用Terminate过程,而Destroy过程一般是用来在程序发生悬挂时来退出程序时才调用,有些类似Windows中的结束任务功能。它不仅能关闭程序实例本身,而且还能释放程序所占用的资源,能够达到将程序彻底清除出系统的目的。

苹果生态格局:软硬件之后,iLifestyle才是王道 小米互娱总经理尚进:独立游戏当为发烧而生 哪些编程语言、框架/平台最受企业青睐? 高德LBS应用大赛:百万大奖、千万基金等你来拿! Gartner:有数据有真相 从浪潮看服务器市场走势 PhoneGap 3.5.0发布,不再支持iOS 5和ARM64 “中美青年创客大赛”之“创客·教育论坛” 以创客教育支持创新人才培养 授之以渔,谷歌发布开源秘密武器Kubernetes 炫耀分数已经out!ShareSDK发布游戏内视频录制SDK Android开发者必知的5个开源库 UCloud完成B轮融资5000万美元 Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 Facebook斥资30亿美元购Snapchat遭拒后,推Slingshot 全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 解析淘宝Hadoop作业平台——宙斯Zeus 亚马逊的心思:要Android不要谷歌 Vuforia SDK全面更新:3.0版可实时生成虚拟场景和物体 Stream SDK:以手为“剪”,随时随地分享精彩内容 一周消息树:惠普研发基于Linux开源操作系统 打造全新计算机 我从谷歌学到的那些事:Toilet文化、代码实验室 在vb里调用我动态库的一个函数,结果发现在动态库中的局部变量未被正确初始化,这是为什么呢?其它语言都正常。 SQL Server的恢复(100分相送) 哪里有BoundsChecker下载!带注册码的!知道的进来!然后给100分!不知道的不要来! 如何在SQL 语句中加入参数? 如何统计服务器上面的session实例的个数 中病毒,症状:打开很多应用程序,系统无反应,运行金山毒霸,系统无反应;点击“开始”-“关机”-“重新启动”,死机! 这是scanf的漏洞吗? 哪一个网站可以很好地查图书资料? web service 及 net remoting中调用com组件问题 当老师了,教计算机,有哪个的小孩敢拿来让我教 当老师了,教计算机,有哪个的小孩敢拿来让我教 控件被其他控件覆盖 听说JFreeChart的文档都是收费的,哪位高人用的熟,整理一个说明拿来看看.小弟谢过了 那为师兄能详细的介绍以下javasmart怎么用吗? 想换心情! 求救,硬盘故障!!! 高手快来!!不知是什么错误!! 讨论架构 求救,硬盘故障!!! 从一个TQuery中的数据如何快速的存放到另一个表中? 创建临时表空间时出错了 VC6的命令行工具 unix下 oralce 8.0.5 连接unix 下8.1.6的问题 帮助中的一段话 关于delphi中类之间成员的访问问题 请教一条sql语句 IE 不能正常浏览applet? SQL语句的简单问题 求救!树形菜单,请高手赐教 求救!!谁有写过安全策略方案,给个模板呀? winrunner怎么获取工具条中的按钮对象? 这个update为什么报错?该如何改? 招兼职图片程序员 请大家帮帮忙,简单(送分) 如何在web.config中设置验证登陆??????? 非常奇怪的编译问题 .NET的平台怎么搭建! 退格键的ASCii码值是多少?急。。。。。。。。。。。 请教大家个问题 如何用php下载文件? 求能够交替显示不同颜色的行的表格控件,十万火急! 如何将SQL SERVER 2000中的两个表连接在一起,且其中的记录是一对多? 如何用JavaScript控制验证控件的Enable属性?? 拼音模糊查询 “网上邻居”就打不开了,这是怎么回事?如何处理? 为什么没有delete 掉 使用pro c要用到那些包,如何快速学会pro c? 谢谢 拼音模糊查询 求gif或jpg下图标。详情见内。 昨天,公司通知我晉升,老丈人讓我去見她,第一次,雙喜臨門,散分!!! 看看我们昨天晚上怎么过的中秋吧 念英语怎么写 有首英文歌叫放开塔,用英文是这么读的 ABAC型词 康熙字典九笔的字 什么是真菌包皮龟头炎 ABAC型的词多一点哦! 窗户里看人,歇后语下一句 谚语“没有理想的人”,下一句是什么? 会馆英语怎么说 美国的农业地区专门化有哪些? 什么是农业集体化? 自称21岁大学生 40岁男子男扮女装中央第八巡视组组长:着力发现选人用人杭州13岁姑娘失踪5天 在社会上结识快递哥邱师傅倒在送货路上 同行前去凭绍兴印染温州电镀两个“污染大户”转型温州双岙村遭垃圾围堵 焚烧垃圾引消防爱心的哥贵师傅往返江山衢州送尿毒症患思鑫坊曾是杭城近代建筑代表 如今成无空气污染致癌 波兰向碳排放开刀法缩短我公民办理赴法旅游签证时间“美丽中国”大型图片展在莫斯科举行证金连夜澄清:未卖出任何上市公司股票CPI又降了,关老百姓啥事?SBTG x Crep Protec《武魂2》四周年狂欢 超智能副本阎罗八月,好戏的热度!遗产税来临前的财富观点同人井喷!在新倩女幽魂遇见微微一笑很猫眼们到底伤万达们哪儿啦?数据危急!央行紧急表态,或再出重拳!有米广告API收集用户数据激怒苹果 贝西克塔斯有意内特-沃尔特斯时间之徒沧海归界血色诡案兽魂塔动力大亨修心之自然诀兽魔巅峰荒岛漂流记七界之纵剑天下重生之都市牛人佛魔之道维色寺旅游沈阳世博园旅游南天门旅游流清河旅游双湖旅游加德满都旅游安久拉山旅游兴凯湖旅游慈湖旅游班公湖旅游木龙湖旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘