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

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中的结束任务功能。它不仅能关闭程序实例本身,而且还能释放程序所占用的资源,能够达到将程序彻底清除出系统的目的。

下一个被黑客攻击的对象—无线路由器 Windows Blue开始按钮或将回归,你怎么看? Evernote推孵化器 不占股权 基于C++和Lua的移动游戏引擎Leadwerks 3发布 苹果秘密测试iOS 7与iPhone 6 或将6月发布 酷6 CTO 陆坚:请先信任你的程序员 从电信联手i-Free,看运营商渠道的加速整合 “Animory”开发者分享HTML5游戏开发经验 Appflood SDK:连接中国与海外App流量交互平台 Apache Subversion 1.7.9正式发布! 微软IE浏览器5大动向 加速吸引开发者 开源的简繁转换库OpenCC支持Node.js 继Opera之后,Adobe表示将支持Google Blink 提高大型软件项目质量的一些实用型技术分享 谷歌推出Mirror API,开发者可为Google Glass开发应用 无需999,也不要499,99美元Linux超级计算机带回家 微软反击AWS:推出EC2并大幅降价,“价格战”正酣 Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 MTS怎么只能生成*.pak 和*.dll,却不能生成Clients子目录及在客户端安装的*.exe COM组件安装! PB 的新问题,有性趣请进!!!! 新手,键值问题 这样的问题没人会????? 大家帮忙看个程序 ACCESS数据库的小问题。 怎样使自己的问题成为热点问题的绝招! 关于c++builder中scanline的应用 跨数据库查询,请教各位高手! 这样的问题也没人会????????????????? 如何使用QuickRep制作简单报表?不牵涉任何DataSet的 关于Transaction的问题 请问 ListCtrl Item里的 Checkbox 被点击时对应的消息是什么? 100分~~100分~~高分求购。。。我也‘倾家荡产求购优秀系统分析案例’(paste from yyzh)。。。100分~~ 全中文的用Rose做的实际项目的UML模型! 救命!!我的机器不能下载东西了,怎么回事?? 求教邮件编程问题,邮件客户端如何实现“在服务器端保留备份的功能“? ciscoworks 各位大哥大虾,VC下如何用ADO连SQL SERVER?(急) ShellExecute和CreateProcess有什么区别? 关于海量数据、最有效率的排序、硬盘缓冲与映射、专业数据库的讨论 如何用VB编启动是可以带参数的程序呢?(例如:我自定义了一种文件,双击用我的程序打开,程序自动会打开这个文档 昨天我过生日,今天分蛋糕给大家 请问哪有《java图形设计2Swing篇》可以下? 我要用一个数据库去实时访问另一个据库,我该怎么办 URLghj1976@csdn.net----别吓我,有请您老人家! 谁给我介绍一下sql server7.0教材的比较好的下载网站,我给他20分。 我都急死了,到搜索引擎里搜到的好几个站点都不能用,到底哪儿可以当到3DMAX? 谁有写的比较好的邮件收发程序? 一个微软证书的私钥问题 微软证书的私钥问题 求助,简单问题 男人最快乐的十个瞬间! solaris下装oracle8.1.6遇到jre环境问题 怎抹加分?我准备给别人加40分,可我最多只能加20,请问另外20分怎末加分,为此我可能已得罪了一些人了。 请教下载的问题 如何在运行时动态修改Quick Report的打印机设置? 怎样做一个接受拽拖的LISTBOS(例如,把资源管理器里的文件拖到上面,就自动增加一项 ,就是拖的文件名) 怎样才能隐藏在ctrl+atl+del中进程列表中的项目啊 用C写DLL 请问:airhorse(编程至尊宝),infopower3000的注册码可以用于商业目的吗? 结构化异常处理 linux下如何配置内置Mondem? red hat linux7.0下安装oracle8.1.6遇到问题 我是菜鸟,问一个关于类的问题 问题:TWebbrower中,InnerHtml和OuterHtml以及InnerText和OuterText之间的区别 (加急)我要傻了,快救命啊!高分求救!!(回答正确者尽管开口要分!) ==============VC中怎样调试控制台程序=============? 再问:MS SQL6.5 的.DAT文件怎么恢复,请高手帮忙,(100分绝对对线) 白桦林 已知x-1=根号3,求代数式(x+1)^2-4(x+1)+4的值 若根号2x+1+[y-2]²+ |z-1|=0,求代数式(xy)²的值 若代数式根号(2-a)的平方+根号(a-4)的平方的值是常数2则a的取值范围 已知x=根号2-1,求代数式x/x-2÷(2+x-4/2-x)的值 设x=1/根号3-2,y=1/根号3+2,求代数式X²﹢XY﹢y²/x﹢y的值 无论x取任何实数,代数式根号x的平方减6x加m都有意义,则m的取值范围是多少? 当X=2-根号3时,求代数式(7+4根号3)X^2+(2+根号3)X+根号3的值? 已知x=2+根号3,y=2-根号3,求代数式[(x+y):(x-y)-(x-y):(x+y)]*(1:x²)-(1:y²) 的值代数式图片 已知x=二分之一(根号7+根号5),y=二分之一(根号7-根号5),求X的平方-XY+Y的平方的值 当x=根号3,求代数式(x-1)(2X-根号3)-x(2x-1)的值 当x=根号2007-1时,求代数式x²+2x+3 已知y=二分之一+根号下2x-1+根号下1-2x,求x的平方+xy+y的平方的值 若x的平方+2x+1+根号(y+1)=0,则代数式根号(x-y)的平方的值是? 当X=根号5-1时候求代数式X²+2x-5的值 已知实数xy满足|x-根号2|+根号(y+根号2/2)=0,求代数式x^100·y^101的值 若y=√x-3-√6-3x+√(-2)^2,求代数式x-2分之y+三次根号(2x+y)的值. 已知a-b=3,a+b=根号7.求代数式a²+b²及ab的值 【内有图片】 已知x=根号2+1,y=根号2-1,求代数式x-根号xy分之x-2倍根号xy+y的值.不是很清晰哈,破手机. 当x=1+根号3时,求代数式(x^2-1)(x+1)/x^2-x÷(1 +x^2+1/2x)+x的值 当x=4-根号3时代数式x²-8x+19的值为 已知实数x,y满足关系式│x+y-3│+根号(xy-6)=0,求代数式(x+2y)/y-x的值 已知根号X加根号X分之一=3,求代数式X分之X平方+1 当x=(1+根号2011)/2,求代数式4x^3-2014x-2010的值 若实数xy满足x^2+6x+根号(x-y+1)+9=0 求代数式((根号1/x-y)+(根号1/x+y))÷x/x^2-y^2 若代数式x-1分之根号x有意义,则实数x的取值范围是如题 已知x∧2-4x+1=0,则代数式根号下x+1/x+3的值为? xy是实数,且y=根号x-4+根号4-x+1/3,求代数式9y*2-6y+1的值. 若代数式3次根号下x分之1在实数范围内有意义,则x的取值范围为—— 当X=根号3-1时 求代数式X²+2X-3的值 设x=根号三减2分之一,y=根号三加二分之一,求代数式x+y分之x2+xy+y的值好的 设x=1/√3-2,y=1/√3+2 求代数式x2+xy+y2/x+y看的懂吗 若代数式根号x-3有意义,则实数x的取值范围是如题. 已知a=根号3+1,b=根号3-1求代数式a²b-ab²的值 先化简在求值;(x=2)平方—(2x—1)(2X—1)+4x(x—1),其中x=—2的根号下 求使代数式根号1-x+根号1-2x分之1+2+x分之1有意义的条件 已知:a=3倍的根号2+2倍的根号3,b=3倍的根号2-2倍的根号3,求代数式a²b-ab²的值. 已知1 当x=根号2013-1时,求代数式x的平方+2x+2的值 已知x-1=根号3,求代数式(x+1)²-4(x+1)+4的值 已知xy小于0 ,则根号x平方y 化简后 已知代数式x的平方+y的平方+2根号2x-4y+根号42,这个代数式是否存在最大值或最小值 已知a=-根号7+3分之2,求代数式a³+5a²-4a-6的值 已知0 已知x=(根号5-1)/2,求代数式x³+2x²-1的值 已知x-2=-根号3,求代数式(x+1)²-6(x+1)+9的值. 先化简再求值:(3x+2)(3x-2)-4x(x+1)-(2x-1)的平方,其中x=根号3 已知mn是方程x²+2√2+1=0的两根,则代数式根号下(m² +n²+3mn)的值为为什么答案不能得-3根号9不等于±3吗 已知x=根号5+根号2,y=根号5-根号2,求代数式x²-xy+y²的值 根号((X+根号2)平方+1/4)减根号((X-根号2)平方+1/4)=2,求X根号((X+5)平方+Y平方)+根号((X-5)平方+Y平方)=10,求X 已知x=1/(2-根号3).求代数式根号(x的平方-8x+16)/(x的平方-5x+4)的值 若m为根号下2的小数部分,求代数式m²+m+根号下2的值. 求详细过程 若a,b分别表示6减根号5的整数部分和小数部分,求代数式2ab减b的平方的差要求有过程. 已知2倍根号2x-根号6=根号2x+2倍根号2,求代数式(7-4倍根号3)x05+(2-根号3)x+根3的值 已知m,n是有理数,关于x的方程x²+mx+n=0有一个根是根号5-2求m+n 已知x,y分别为8-根号11的整数部分和小数部分,求2xy-y的平方的值 问一道题;已知x=2008-5称根号3求代数式x的平方-1/x方-2x=1÷【1=x=1/x-3】的值 已知x=根号下2011根号外再-1,求代数式x²+2x+5的值、 已知y=根号(x-8)+根号(8-x)+18,求代数式[(x+y)/(根号x+根号y)]-2xy/(x根号y-y根号x)的值 已知X=根号2,则代数式x/(x-1)的值为多少 已知x=根号2015-1,求代数式x²+2x-2015的值 已知Y=根号X-8+根号8-X在加18,求代数式X-Y/根号X-根号y再减去2xy/x倍根号y-y倍的根号x的值.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn