转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi中关于TApplication类的详解         ★★★★

Delphi中关于TApplication类的详解

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1828 更新时间:2009/4/23 18:39:04

Delphi中关于TApplication类的详解

 

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

1、Windows消息处理。

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

3、异常处理。

4、上下文联机帮助。

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

1、属性

1.  1属性Active

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

  property Active: Boolean;

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

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

  1.2属性DialogHandle

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

  property DialogHandle: HWnd;

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

1.3属性ExeName

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

  property ExeName: string;

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

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

1.4属性Handle

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

  property Handle: HWND;

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

1.5属性HelpFile

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

  property HelpFile: string;

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

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

1.6属性Hint

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

  property Hint: string;

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

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

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

1.7属性HintHidePause

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

  property HintHidePause: Integer;

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

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

1.8属性MainForm

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

  property MainForm: TForm;

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

1.9属性ShowMainForm

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

  property ShowMainForm: Boolean;

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

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

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

1.10属性Terminated

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

  property Terminated: Boolean;

[1] [2] [3]  下一页


[VB.NET程序]VB.NET中关于DataGrid颜色的自定义。  [Delphi程序]Delphi中TApplication类的巧用
[Delphi程序]TApplication 中CreateForm的用法  [ORACLE]oracle中关于null排序的问题
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台