Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:13:48 Delphi项目的框架类-TApplication类实例-详解
Delphi项目的框架类:TApplication类实例|详解|技巧
TApplication 类任何基于窗体的Delphi 7 程序都包含一个全局变量Application,它的类型是TApplication。TApplication 封装了一些属性和方法,使应用程序能够正确地在Windows 环境下运行。这些方法中,有的用于建立窗口类定义,有的用于创建应用程序的主窗口、激活应用程序、处理消息、添加上下文敏感的帮助及处理VCL 的异常。注意:只有基于窗体的Delphi 应用程序才有全局Application 对象,而控制台程序和服务程序没有Application 对象。由于TApplication 并不在Object Inspector 中出现,因此不能在设计时修改它的属性,但可以用“Project”→“Options”菜单命令,切换到“Application”标签页,设置一些相关TApplication 的属性。在大多数情况下,只能在运行时设置Application 的属性、方法和事件。1.TApplication 的属性TApplication 具有几个属性,可以在运行时访问它们。下面将介绍这些属性以及怎样通过它们改变Application 的默认行为。(1)ExeName 属性ExeName 属性能够返回应用程序的全路径和文件名。这个属性在运行时是只读的,例如下面的代码把ExeName 属性的值显示在主窗体的标题栏上:Application.MainForm.Caption:=Application.ExeName;使用ExtractFileName()函数可以从ExeName 属性中得到文件名:ShowMessage(ExtractFileName(Application.ExeName));使用ExtractFilePath()函数可以从ExeName 属性中得到全路径:ShowMessage(ExtractFilePath(Application.ExeName));使用ExtractFileExt()函数可以从ExeName 属性中得到文件扩展名:ShowMessage(ExtractFileExt(Application.ExeName));(2)Handle 属性Handle 属性是一个HWND(一个用于Win32 API 的窗口句柄)。一般情况下,不需要访问Handle属性,除非要修改Application 的默认行为,而Delphi 又没有提供相应的方法。此外,调用某些Win32 API 时可能也需要用到Handle 属性,因为那些API 需要传递应用程序的窗口句柄。(3)Icon 属性Icon 属性用于设置当应用程序最小化时代表应用程序的图标。可以通过修改Icon 属性来改变应用程序的图标。通常选择“Project”→“Option”菜单项,在弹出窗口的“Application”标签页进行修改。(4)Title 属性在Windows 系统的任务栏上,显示在图标右边的文字是通过Title 属性设置的。如果应用程序在Windows NT 下运行,则文字显示在图标下面。下面的代码演示了如何修改Title 属性:Application.Title:=’一个新的标题’;(5)其他属性Active 是一个只读的属性,它的值表明应用程序是否激活和具有输入焦点。ComponentCount 属性表明应用程序所包含的组件数,如果Application.ShowHint 属性设为True,那么这些组件主要是指窗体和THintWindow 实例(即窗口)。对于那些没有拥有者(Owner)的组件来说,ComponentIndex 属性总是-l。这个属性主要用于窗体和窗体中的组件。Components 属性是一个数组,它的元素就是那些属于Application 的组件。Components 数组的元素个数就是TApplication.ComponentCount 属性的值。HelpFile 属性用于指定帮助文件的文件名。需要向TApplication 的HelpContext 方法以及其他类似的方法传递帮助文件的文件名。TApplication.Owner 属性总是nil,因为TApplication 不可能被另外组件拥有。ShowHint 属性用于设置是否允许显示提示条。Application.ShowHint 属性覆盖其他组件的ShowHint 值。如果Application.ShowHint 属性设为False,则所有组件的提示条都不会显示。如果应用程序的主窗体被关闭,或者调用了TApplication.Terminate(),则Terminated 属性为True。
赞