45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:Delphi中关于TApplication类的详细介绍

Delphi中关于TApplication类的详细介绍

2016-09-01 16:49:52 来源:www.45fan.com 【

Delphi中关于TApplication类的详细介绍

Delphi中关于TApplication类的详解

TApplicationDelphi应用程序的类型,该类是从TComponent继承,在单元Forms中声明。并且在Forms中有个公用的对象Application。其方法和属性集中包括了 Windows操作系统中创建、运行和销毁应用程序等既定的基本操作和属性,因此在用Delphi编写 Windows应用程序时简化了用户和Windows环境之间的接口。TApplication封装了以下四个功能:

1Windows消息处理。

2、菜单加速和键盘处理。

3、异常处理。

4、上下文联机帮助。

下面就向大家介绍TApplication中的常用属性、方法和事件。

1、属性

1. 1属性Active

属性Active指明了应用程序是否处于活动状态且拥有焦点。定义如下:

property Active: Boolean;

Active是只读属性。当应用程序是活动状态时ActiveTrue,否则为FalseTApplica-tion的构造器(constructor) ActiveTrue。如果窗口或应用程序拥有焦点,那么该应用程序是活动的。当其它应用程序的窗口成为活的时,当前应用程序即为非活动的。应用程序关闭时TApplication的析构器(destructor) ActiveFalse

在应用程序中,可以用一个计时器(TTimer)来检查属性Active的值,从而确定当前的应用程序是否是活动状态,以便作出相应的处理。也可以在事件OnActive和事件OnDeactive中定义指定的操作。

12属性DialogHandle

属性DialogHandle提供使Delphi应用程序使用非Delphi对话框的一种机制。定义如下:

property DialogHandle: HWnd;

当使用API函数CreateDialog创建一个非模式化对话框时需要使用 DialogHandle,并且需要查看应用程序消息循环中的消息以进行相应的操作。比如,当一个非模式化对话框收到一条激活消息(WM_NCACTIVATE)时可以将其句柄赋值到 DialogHandle,当对话框收到一条解除激活消息时置DialogHandle0

13属性ExeName

属性ExeName包含了可执行的应用程序文件名极其路径信息。定义如下:

property ExeName: string;

ExeName是只读属性。使用ExeName能够得到应用程序可执行文件的文件名。

这是一个很有用的属性。例如,运行光盘中的应用程序 f:/media/myapp.exe 时,可能需要访问目录 f:/media/data/ 中的文件或者确定应用程序所在的驱动器盘符。 这时可以使用Delphi提供的函数ExtractFilePathExtractFileName对属性ExeName 进行解析,从而得到需要的信息。

14属性Handle

属性Handle提供了对应用程序主窗口句柄的访问。定义如下:

property Handle: HWND;

当调用一个需要父窗口句柄的 Windows API函数时需要使用Handle属性。例如,应用程序中某个动态链接库(DLL) 可能需要父窗口句柄以使得其自身能够弹出并且显示在最前端。使用Application.Handle构成应用程序的若干窗口,使得这些窗口在应用程序中能够被最小化、恢复、有效或无效。注意:编写一个使用 VCL窗体的动态链接库时,应将主运行程序中主窗口的句柄赋值到该动态链接库的Application.Handle属性。这样就使得动态链接库的窗体成为主应用程序的一部分。需要特别指出的是,永远不要在EXE应用程序中给Application.Handle赋值。

15属性HelpFile

属性HelpFile指明了应用程序用于显示帮助内容的文件名。定义如下:

property HelpFile: string;

使用HelpFile是为了应用程序拥有一个使用标准Windows帮助系统的帮助文件。Windows显示由HelpFile属性指明的帮助文件。要让应用程序实现这一点,必须在运行时为HelpFile属性赋予一个文件名的值,或者在设计时Project|Options对话框的Application页面中指定一个帮助文件。默认情况下,HelpFile是一个空串(''),并且应用程序的帮助方法忽略所有的试图显示帮助。如果HelpFile包括任何内容,帮助主题的方法将根据文件名调出 Windows帮助系统以提供联机帮助。

注意:如果活动窗口的帮助文件已指定,则该文件将优先于应用程序的帮助文件显示。

16属性Hint

属性Hint指明了出现在帮助提示框(Help Hint box)中的文本字符串。定义如下:

property Hint: string;

TApplication.Hint属性就是鼠标正在移动经过的控件或菜单项的 Hint值。该属性也能被赋予一个向用户提供动作、错误或其它信息的字符串值。因此,使用Hint属性也能够:从控件传递提示信息到另一显示区,例如通过OnHint事件句柄将提示显示到状态栏中。这时是读取Hint属性。当应用程序正在进行某一动作时简要描述其状态。这时是设置Hint属性。当OnHint事件发生时帮助提示才出现。因此,即使TApplicationHint属性被赋予状态栏的标题,例如状态栏控件的标题显示Hint属性的当前字符串值,也应归于OnHint事件。

Hint字符串包括两部分:短提示和长提示。短提示用于简洁的弹出提示;长提示与短提示之间用竖线"|"隔开,用于在状态栏中显示较详细的提示信息。可以使用单元 Controls中提供的字符串函数GetShortHintGetLongHintHint属性中分解得到短提示和长提示。

注意:当应用程序通过设置Hint属性向用户提供某一事件发生的信息时应当切记,默认情况下,当鼠标移动经过某一控件时,Hint字符串被复位到该控件的Hint属性值。

17属性HintHidePause

属性HintHidePause 指定了鼠标尚未从控件或菜单项上移开、在隐藏帮助提示之前的时间间隔。定义如下:

property HintHidePause: Integer;

HintHidePause以毫秒为单位指定等待时间,在TApplication 的构造器中该属性被置为2500毫秒(2.5)。控件或菜单项的帮助提示在Hint属性中指定。

注意:默认应将HintHidePause的值预先确定为HintPause属性值的35倍较合适。

18属性MainForm

属性MainForm唯一标识了应用程序的主窗体。定义如下:

property MainForm: TForm;

属性MainForm指定的窗体不一定等同于应用程序的主窗口。属性MainForm的值一定是由方法CreateForm创建的所有窗体中的第一个窗体,但该窗体未必是应用程序的主窗口。新建一个工程时,MainForm属性值自动置为Form1。在设计时可通过Project|Options对话框中的Forms页面在多个窗体中指定其中之一为MainForm。在运行时是不能修改MainForm属性的,因为该属性是只读的。主窗体是应用程序主题创建的第一个窗体。主窗体关闭即应用程序终止。在应用程序中,可以调用方法Application.MainForm.Close来终止应用程序运行,可以获取Application.MainForm.TopApplication.MainForm.Left 等属性的值从而确定当前活动窗口的位置以及尺寸等。

19属性ShowMainForm

属性ShowMainForm确定了是否在应用程序启动时显示主窗体。定义如下:

property ShowMainForm: Boolean;

应用程序用ShowMainForm属性控制是否以及何时显示其主窗体。TApplication的构造器置ShowMainFormTrue。默认情况下主窗体将被显示,MainForm属性中指明了主窗体。

如果需要在应用程序启动时隐藏主窗体,那么应在主工程文件中调用 Application.Run之前置ShowMainFormFalse,并且确信主窗体的Visible属性值为False。这在许多实现OLE自动化服务器是很有用的,比如在启动自动化服务时隐藏服务器程序的主窗体。

另外,如果需要在应用程序启动时显示一个闪出图片(Flash) 并为应用程序的环境做一些准备,同时需要禁止主窗体显示,这也可以利用属性ShowMainForm来实现。比如Delphi启动时就禁止了主窗体的显示。

110属性Terminated

属性Terminated报告程序是否收到终止程序的Windows消息WM_QUIT。定义如下:

property Terminated: Boolean;

Terminated是只读属性。该属性主要用于调用ProcessMessages 方法时应用程序不必在停止后试图处理Windows 消息。当ProcessMessages方法收到消息WM_QUIT时,Terminated将被置为True

Delphi应用程序总会因为主窗体或应用程序关闭,或者因为Terminate 方法被调用而收到消息WM_QUIT

当应用程序执行强度较大、占用系统资源较多的运算时,应当周期性地调用Applicati-on.ProcessMessages方法,并检查属性Application.Terminated以确定是否需要终止运算从而终止应用程序。

111属性UpdateFormatSettings

属性UpdateFormatSettings指明了当用户改变系统配置时应用程序是否自动更新格式设置。定义如下:

property UpdateFormatSettings: Boolean;

使用UpdateFormatSettings属性应用程序可以控制自动更新格式设置。TApplication的构造器置该属性为True。当应用程序收到消息WM_WININICHANGE时将检查UpdateFormatSett-ings属性。建议使用默认的格式设置,也就是Windows本地的设置。可以置UpdateFormatSe-ttingsFalse以避免在Delphi应用程序执行期间改变格式设置。

112属性UpdateMetricSettings

属性UpdateMetricSettings属性指明是否对提示窗口字体和图标标题等相关设置进行更新。定义如下:

property UpdateMetricSettings: Boolean;

UpdateFormatSettings属性指明系统中提示窗口字体和图标标题等设置改变是否反映到应用程序中相关设置的改变。TApplication的构造器置UpdateMetricSettings的初始值为True

2、方法

21方法BringToFront

方法BringToFront设置应用程序中最近一次的活动窗口到桌面上所有窗口的最前端。其定义如下:

procedure BringToFront;

BringToFront方法可以找到属于主窗体的最近一次的活动窗口并且将其置于最前端。BringToFront方法也可以测试和查看一个窗口在成为最前端窗口之前是否是可见 (Visible) 和有效的(Enabled) 例如,当应用程序收到邮件时,可能需要将专门的处理程序激活并置于Windows 桌面的最前端。这时就可以调用Application.BringToFront方法来实现。

22方法CreateForm

方法CreateForm方法用于创建新的窗体(form)。定义如下:

procedure CreateForm(FormClass: TFormClass; var Reference);

Delphi应用程序总会调用CreateForm方法。因此程序员很少有必要直接调用CreateForm方法。一个典型的Delphi工程在工程的主体代码部分包括一处或多处调用CreateForm方法,并且在使用窗体设计器时自动控制窗体的创建。也可以在运行时可以调用CreateForm方法来动态创建窗体。CreateForm方法根据FormClass 参数创建一个新的指定的窗体并且将窗体赋予到变量参数Reference 新创建的窗体的所有者就是对象Application 应用程序将第一个调用CreateForm 创建的窗体默认为工程的主窗体。

23方法HandleException

方法HandleException为应用程序的异常提供默认的句柄。定义如下:

procedure HandleException(Sender: TObject);

方法HandleException 对于编写特定组件的作者来说是很有用的,因为它可以产生一个不必对Windows 消息产生响应的事件。在应用程序中可以利用OnException 事件句柄将其它的异常操作控制在自定义的代码中。在应用程序代码中,如果异常跳过了所有的try 块,那么应用程序将自动调用HandleE-xception方法,并将显示一个提示有错误发生的对话框。除非异常对象是EAbort,此时Han-dleException将调用OnException句柄(如果存在),否则将调用ShowException显示一个提示有错误发生的对话框。

24方法UnhookMainWindow

UnhookMainWindow方法用于释放由HookMainWindow方法挂在主窗体的程序。定义如下:

type TWindowHook = function(var Message: TMessage): Boolean of object;

procedure UnhookMainWindow(Hook: TWindowHook);

UnhookMainWindow


本文地址:http://www.45fan.com/dnjc/70857.html
Tags: 关于 Delphi TApplication
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部