生活井井有条!
工作快快乐乐!
学习轻轻松松!
度过充实一生!
 
 
最 新 评 论
专 题 分 类
最 新 日 志
最 新 留 言
搜 索
用 户 登 录
友 情 连 接
我 的 好 友
博 客 信 息
  • 日志:391
  • 评论:33
  • 留言:1
  • 访问:-


Delphi 2005 中的Application对象 | 2009/11/30 17:43:00

Delphi中的Application对象


 TApplication是用于Delphi应用程序的类型,该类在单元forms中声明。TApplication是Delphi构造 Windows应用程序所需的类型,其方法和属性集中包括了 Windows操作系统中创建、运行和销毁应用程序等既定的基本操作和属性,因此在用Delphi编写 Windows应用程序时简化了用户和Windows环境之间的借口。


    TApplication封装了以下功能:

Windows消息处理

上下文联机帮助

菜单加速和键盘处理

异常处理

管理由Windows操作系统为应用程序定义的基本部分,如主窗口、窗口类等


    每个Delphi应用程序自动声明一个Application变量作为应用程序的实例。如果Delphi应用程序不是一个Web服务器应用程序,那么该变量一定是TApplication类型。因此TAppli-cation不需要出现在组件选择板(component palette)中,并在窗体设计器(form designer)中也不能对其进行可视化操作,故TApplication不具有发布属性(published properties)。不过,TApplication的公共属性(public properites)在设计时(design-time)是可以设置或修改的,如在Project|Options对话框的Forms和Application页面中


    下面就向大家介绍TApplication中的大部分属性、方法和事件


属性Active

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

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

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


属性DialogHandle

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


属性ExeName属性

    ExeName包含了可执行的应用程序文件名极其路径信息。定义如下:property ExeName: string;ExeName是只读属性。使用ExeName能够得到应用程序可执行文件的文件名

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


属性Handle

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


属性HelpFile

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

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


属性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属性值


属性HintHidePause

    属性HintHidePause 指定了鼠标尚未从控件或菜单项上移开、在隐藏帮助提示之前的时间间隔。定义如下:property HintHidePause: Integer;用HintHidePause以毫秒为单位指定等待时间,在TApplication 的构造器中该属性被置为2500毫秒(2.5秒)。控件或菜单项的帮助提示在Hint属性中指定

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


属性MainForm

    属性MainForm唯一标识了应用程序的主窗体。定义如下:property MainForm.: TForm;属性MainForm指定的窗体不一定等同于应用程序的主窗口。属性MainForm的值一定是由方法CreateForm创建的所有窗体中的第一个窗体,但该窗体未必是应用程序的主窗口。新建一个工程时,MainForm属性值自动置为Form1。在设计时可通过Project|Options对话框中的Forms页面在多个窗体中指定其中之一为MainForm

在运行时是不能修改MainForm属性的,因为该属性是只读的

    主窗体是应用程序主题创建的第一个窗体。主窗体关闭即应用程序终止

    在应用程序中,可以调用方法Application.MainForm.Close来终止应用程序运行,可以获取Application.MainForm.Top、Application.MainForm.Left 等属性的值从而确定当前活动窗口的位置以及尺寸等


属性ShowMainForm

    属性ShowMainForm确定了是否在应用程序启动时显示主窗体。定义如下:property ShowMainForm.: Boolean;应用程序用ShowMainForm属性控制是否以及何时显示其主窗体

    TApplication的构造器置ShowMainForm为True。默认情况下主窗体将被显示,MainForm属性中指明了主窗体

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

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


属性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以确定是否需要终止运算从而终止应用程序


属性UpdateFormatSettings

    属性UpdateFormatSettings指明了当用户改变系统配置时应用程序是否自动更新格式设置。定义如下:property UpdateFormatSettings: Boolean;使用UpdateFormatSettings属性应用程序可以控制自动更新格式设置。TApplication的构造器置该属性为True。当应用程序收到消息WM_WININICHANGE时将检查UpdateFormatSett-ings属性。建议使用默认的格式设置,也就是Windows本地的设置。可以置UpdateFormatSe-ttings为False以避免在Delphi应用程序执行期间改变格式设置

    

属性UpdateMetricSettings

    属性UpdateMetricSettings属性指明是否对提示窗口字体和图标标题等相关设置进行更新。定义如下:property UpdateMetricSettings: Boolean;UpdateFormatSettings属性指明系统中提示窗口字体和图标标题等设置改变是否反映到应用程序中相关设置的改变

TApplication的构造器置UpdateMetricSettings的初始值为True


方法BringToFront

    方法BringToFront设置应用程序中最近一次的活动窗口到桌面上所有窗口的最前端。其定义如下:procedure BringToFront;用BringToFront方法可以找到属于主窗体的最近一次的活动窗口并且将其置于最前端

    BringToFront方法也可以测试和查看一个窗口在成为最前端窗口之前是否是可见 (Visible)和有效的(Enabled) 

    例如,当应用程序收到邮件时,可能需要将专门的处理程序激活并置于Windows 桌面的最前端。这时就可以调用Application.BringToFront方法来实现


方法CreateForm

    方法CreateForm方法用于创建新的窗体(form)。定义如下:procedure CreateForm(FormClass: TFormClass; var Reference);Delphi应用程序总会调用CreateForm方法。因此程序员很少有必要直接调用CreateForm方法。一个典型的Delphi工程在工程的主体代码部分包括一处或多处调用CreateForm方法,并且在使用窗体设计器时自动控制窗体的创建。也可以在运行时可以调用CreateForm方法来动态创建窗体

CreateForm方法根据FormClass 参数创建一个新的指定的窗体并且将窗体赋予到变量参数Reference。 新创建的窗体的所有者就是对象Application。 应用程序将第一个调用CreateForm 创建的窗体默认为工程的主窗体


方法HandleException

    方法HandleException为应用程序的异常提供默认的句柄。定义如下:procedure HandleException(Sender: TObject);方法HandleException 对于编写特定组件的作者来说是很有用的,因为它可以产生一个不必对Windows 消息产生响应的事件。在应用程序中可以利用OnException 事件句柄将其它的异常操作控制在自定义的代码中

    在应用程序代码中,如果异常跳过了所有的try 块,那么应用程序将自动调用HandleException方法,并将显示一个提示有错误发生的对话框。除非异常对象是EAbort,此时HandleException将调用OnException句柄(如果存在),否则将调用ShowException显示一个提示有错误发生的对话框


方法UnhookMainWindow

    UnhookMainWindow方法用于释放由HookMainWindow方法挂在主窗体的程序。定义如下:type TWindowHook = function(var Message: TMessage): Boolean of object;procedure UnhookMainWindow(Hook: TWindowHook);用UnhookMainWindow可以释放挂钩窗口。在参数Hook中指明对话框过程

    TwindowHook 类型是调用HookMainWindow方法的参数。该参数是非Delphi对话框中调用对话程序的方法指针。对话程序与窗口程序相似,都是为对话框处理消息,只是语法不同

    事件OnActivate当应用程序成为活动状态时OnActivate事件发生。定义如下:type TNotifyEvent = procedure (Sender: TObject) of object;property OnActivate: TNotifyEvent;用OnActive事件编写一个事件句柄来完成当应用程序成为活动状态时指定特别的处理

    当一个Windows 应用程序最初运行时或其焦点从另一个Windows 应用程序转移回到当前应用程序时,该应用程序成为活动状态


事件OnDeactivate

    当应用程序成为非活动状态时OnDeactivate事件发生。定义如下:type TNotifyEvent = procedure (Sender: TObject) of object;property OnDeactivate: TNotifyEvent;在应用程序成为非活动状态之前可以立即触发OnDeactive事件,从而完成在该事件句柄中指定的特别处理。当用户从当前应用程序转换到另一应用程序时,当前应用程序的OnDea-ctive事件即发生


事件OnException

    当应用程序中的某个无句柄的异常发生时事件OnException发生。定义如下:type TExceptionEvent = procedure (Sender: TObject; E: Exception) of object;property OnException: TExceptionEvent;可以通过OnException 事件来改变在应用程序中无句柄的异常发生时的默认动作。在方法TApplication.HandleException方法中,OnException 事件句柄被自动调用

    OnException 事件仅用于处理在进行消息处理时发生的异常。在Application.Run 执行前或执行后发生的异常不会导致OnException事件发生

    如果某个异常在应用程序代码的try 块中被忽略,那么应用程序将自动调用HandleExc-eption方法。除非异常对象是EAbort,此时HandleException 将调用OnException句柄(如果存在), 否则将调用ShowException 显示一个提示有错误发生的对话框

    TExceptionEvent类型是OnException事件的类型,该类型在应用程序中指向一个处理异常的方法。参数Sender是引发异常的对象,而参数E 是异常对象


事件OnHelp

    当应用程序收到帮助请求时OnHelp事件发生。定义如下:type THelpEvent = function (Command: Word; Data: Longint; var CallHelp: Boo-lean): Boolean of object;property OnHelp: THelpEvent;用OnHelp编写一个事件句柄以完成有请求帮助时特别的处理。HelpContext方法和Help-Jump方法自动引发OnHelp事件

    在事件发生之后置CallHelp为True使VCL调用WinHelp;置CallHelp为False以防止VCL调用WinHelp。 Delphi应用程序中所有与帮助有关的方法都经过OnHelp事件。仅当OnHelp事件中的CallHelp参数返回True或OnHelp事件没有被指定到有效的句柄时,WinHelp被调用


事件OnHint

    当鼠标指针移动经过某个控件或菜单项并且该控件或菜单项能够显示帮助提示时,事件OnHint发生。定义如下:type TNotifyEvent = procedure (Sender: TObject) of object;property OnHint: TNotifyEvent;用OnHint编写的事件句柄能够在OnHint事件发生时执行指定的操作。当用户停放鼠标指针在某个控件上,并且该控件的Hint属性值不是空串(''),这时OnHint事件将发生

    通常用OnHint事件显示控件或菜单项Hint属性的值作为某个面板控件(如TStatusBar)的标题,因此把面板(panel) 用作状态栏(status bar)。当OnHint事件发生时,Hint属性通常被指定为一个帮助提示(Help Hint)和一个在别处显示的长提示(longer hint)


事件OnIdle

    当应用程序成为空闲状态时OnIdle事件发生。定义如下:type TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object;property OnIdle: TIdleEvent用OnIdel编写一个事件句柄当应用程序空闲时完成指定的操作。当应用程序不执行任何代码时即为空闲的。例如,当应用程序等待用户输入时该应用程序是空闲的

    TIdelEvent类型是OnIdel事件的类型,它指向一个当应用程序空闲时运行的方法。对象TIdelEvent有一个默认为True的布而变量Done。当Done为True时,Windows API 函数WaitM-essage将在OnIdel返回时被调用。WaitMessage 使其它应用程序得到控制焦点直到应用程序的消息队列中出现一条新的消息。当参数Done为False 且应用程序不忙时,应用程序不会使其它应用程序得到控制焦点

    当应用程序转为空闲状态时,OnIdel事件仅发生一次,直到参数Done置为True才可能发生下一次OnIdel事件。应用程序置Done为False消除了紊乱的CPU时间计数,而该计数可能影响整个系统的性能


Delphi程序示例


interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComCtrls;

type

  TForm1 = class(TForm)

    StatusBar1: TStatusBar;

    procedure FormCreate(Sender: TObject);

  private

  { Private declarations }

  public

    procedure CustomDisplayHint(Sender: TObject);

    //Line 16{ Public declarations }

  end;


varForm1: TForm1;


implementation


{$R *.DFM}


procedure TForm1.CustomDisplayHint(Sender: TObject);

begin

  StatusBar1.SimpleText := GetLongHint(Application.Hint);

  //Line 29

end;


procedure TForm1.FormCreate(Sender: TObject);

begin

  Application.OnHint := CustomDisplayHint;

  //Line 34

end;


end.


    在上面的代码中,第16行是开发者定义的用于事件OnHint的方法 CustomDisplayHint;

    第29行是该方法的实现部分,将Application.Hint中的长提示解析出来,并在状态栏中显示出来;

    第34行是在窗体创建时将方法CustomDisplayHint 与事件Application.OnHint的句柄相关联。

    当鼠标移动并停留在某个控件(如按钮)上时,如果该控件各级宿主对象的ShowHint属性(如果有)的值都为True并且其ShowHint属性的值也为True,那么该控件的Hint属性值中的短提示将以提示窗口的形式浮动显示出来,而相应的长提示则按照事件句柄中的指定操作将显示在状态栏中。


 

简介 TApplication


继承关系:


TObject → TPersistent → TComponent 


TApplication组件的属性:


Active


AllowTesting


DialogHandle


ExeName


Handle


HelpFile


Hint


HintColor


HintHidePause


HintPause


HintShortPause


Icon


MainForm


ShowHint


ShowMainForm


Terminated


Title


UpdateFormatSettings


UpdateMetricSettings


 


从TCompnent继承来的:


ComObject


ComponentCount


ComponentIndex


Components


ComponentState


ComponentStyle


Designlnfo


Name


Owner


Tag


VCLComObject


 


TApplication组件的方法:


BringToFront


CancelHint


ControlDestroyed


Create


CreateFom


CreateHandle


Destroy


HandleException


HandleMessage


HelpCommand


HelpContext


HelpJump


HideHint


HintMouseMessage


HookMainWindow


lnitialize


MessageBox


Minimize


NormalizeTopMosts


NormalizeAllTopMosts


ProcessMessages


Restore


RestoreTopMosts


Run


ShowException


Terminate


UnhookMainWindow


 


从TComponent继承来的:


DestroyComponents


Destroying


FindComponent


FreeNotification


FreeOnRelease


GetParentComponent


HasParent


InsertComponent


RemoveComponent


SafeCallException


 


从TPersistent继承来的:


Assign


GetNamePath


TObject继承来的:


ClassInfo


ClassNarne


ClassNameIs


ClassParent


ClassType


CleanupInstance


DefaultHandler


Dispatch


FieldAddress


Free


Freelnstance


GetInterface


GetInterfaceEntry


GetInterfaceTable


InheritsForm


InitInstance


InstanceSize


MethodAddress


MethodName


NewInstance


 


TApplication组件的事件:


OnActivate


OnDeactivate


OnException


OnHelp


OnHint


OnIdle


OnMessage


OnMinimize


OnRestore


OnShowHint


 


Active属性 


对应对象:TApplication


声明:property Active: Boolean;


功能:Active属性是用来声明应用程序是否被激活。


Active属性是在运行时有效,它是只读类型的。当应用程序处于激活状态并且具有焦点时,它将返回真,否则将返回假。


例子:


//Place a timer on the form, and change its interval property to 100 


procedure TForml.Timer1Timer(Sender: TObject); 


begin 


if Application.Active = True then 


Forml.Caption := ’Application is active’; 


else Forml.Caption := ’Application is inactive’; 


end; 


 


BringToFront方法 


对应对象:TApplication


声明:procedure BringToFront;


功能:BringToFront方法用于将用户的应用程序的主窗体窗口放置到Windows Desktop上的其他窗口的前面。Windows Desktop有一个Z轴的次序,确定一个窗口相对于其他窗口的逻辑位置(上或下)。这个Z轴次序允许窗口以叠加的形式出现,同时确定当前的带有焦点的窗口。BringToFront使用户的应用程序的主窗体的窗口放置在Z轴次序的上部,这样将使它拥有焦点并且处于被激活的状态,使其出现在Desktop的所有窗口之上。


例子:


//Rathcr annoying example that forces your window to the front 


procedure TForml.Timer1Timer(Sender: TObject); 


begin 


if Application.Active = False then 


Application.BringToFront; 


end; 


 


CreateFom方法 


对应对象:TApp1ication


声明:procedure CreateForm(InstanceClass: TComponentClass; 


var Reference);


功能:CreateForm方法用来创建一个新的窗体。InstanceClass是要被创建的窗体的类型。Reference是赋予窗体的变量。Application对象拥有新创建的窗体。在项目源代码中至少应调用一次CreateForm,且该应用程序的每一个窗体都将被调用,这些调用是由Delphi自动地调用,不需要用户人工调用。


例子:


//Project source – use View|Project Source from the IDE 


program Projectl; 


 


uses 


Forms, 


Unit1 in ‘Unitl.pas’ {Form1}; 


 


{$R *.RES} 


 


begin 


Application.Initialize; 


Application.CreateForm(TForm1, Forml); 


Application.Run; 


end; 


 


ExeName属性 


对应对象:TApplication


声明;property ExeName: string;


功能:ExeName包含了应用程序可执行文件的目录和文件名。


ExeName属性在运行时有效,并且为只读型的。它包含有应用程序的可执行文件名。


 


Handle属性 


对应对象:TApplication


声明:propeny Handle: HWND;


功能:包含有应用程序窗口的句柄。


Handle属性在处理一个需要窗口句柄的API的调用时使用的。通常用户不需要自己去访问Application.Handle属性。注意这里指的是不可视的应用程序窗口的句柄并不是主体窗口的句柄。要获得主体窗口的句柄应使用TForm对象的Handle属性。


 


HeIpCommand方法 


对应对象:TApplication


声明:fuction HelpCommand(Command:Integer;Data:Longint):Boolean; 


功能:HelpCommand允许用户访问Windows Help API中的任何命令。 


Command是需要被调用的Windows Help API命令。Data是需要被传送给Help命令的数据。HelpCommand方法调用了Windows Help的文件WINHELP.EXE,并且将它传送给由Command参数指定的命令及由Data参数指定的数据,被发送的命令指定了请求帮助的类型,而被发送的数据则依请求的命令而确定。以下例出了可以被传送给HelpCommand的部分命令和数据值。 


命 令 值 

数 据 值 

意 义 


HELP_COMMAND 

包含将要执行的Help宏命令或一毓由分号分隔的Help宏命令的字符串地址 

执行Help宏命令或宏命令集。 


HELP_CONTENTS 

此项是为与4.0版本之前的帮助引擎相兼容而提供的命令。对应32位应用程序应使用HELP_FINDER命令。 


HELP_CONTEXT 

主题的上下文标识符 

显示由Data值标识的标题。 


HELP_CONTEXTPOPUP 

主题的上下文标识符 

创建一个显示了Data值指定的主题的弹出式窗口。 


HELP_FINDER 

显示一个4.0版本Helptopics对话框。 


HELP_FORCEFILE 

用于保证WinHelp显示正确的Help文件,如果不是正确的显示,则装载正确的Help文件。 


HELP_INDEX 

该命令与4.0以前的版本相兼容。新的应用程序应该使用HELP_FINDER来代替。 


HELP_KEY 

关键字字符串的地址 

显示由关键字标识的标题,关键字的地址由Data传递。 


HELP_PARTIALKEY 

关键字字符串的地址 

如果完全匹配,则显示由关键字标识的主题,关键字的地址由Data传递,如果有一个以上的匹配,则显示Index标签。 


HELP_QUIT 

如果没有其他的应用程序请求Help,则将关闭Help应用程序。 


HELP_SETCONTENTS 

对Contents主题的上下文的标识符 

当用户按击Contents按钮时,指定要显示的主题。 


HELP_SETINDEX 

对索引主题上下文的标识符 

指定要在Index中显示的关键字列表。 


HELP_HELPONHELP 

使用Windows Help显示Help。 


 



例子: 


//Load Windows Help 


procedure TForm1.mnuWindowsHelpClick(Sender:TObject); 


begin 


Application.HelpFile:=’winhelp.hlp’; 


Application.HelpCommand(HELP_FINDER,0); 


End; 


 


HelpContext方法 


 


对应对象:TApplication 


声明:function HelpContext(Context:IhelpContext):Boolean; 


功能:HelpContext方法用来打开Windows Help并且显示指定的屏幕。 


在调用HelpContext之前,用户必须保证Application的HelpFile属性被设置成为有效的Help文件。HelpContext将用来打开由HelpFile属性指定Help文件并且装载由context参数指定的屏幕。HelpContext的类型为ThelpContext,它是一个简单的整数,是在Help内定义的ID值,并可以通过这个控件的HelpContext的属性和界面元素相关联。为了创建Help文件可以参考Mircosoft Help WorkShop用户手册。 


例子: 


procedure TForm1.mnuHelpClick(Sender:TObject); 


begin 


Application.HelpFile:=’my_apps_help.hlp’; 


Application.HelpContext(11); 


End; 


 


HelpFile属性 


 


对应对象:TApplication 


声明:property HelpFile:String; 


功能:HelpFile属性指定应用程序所使用的Help文件名。 


HelpFile属性在运行时是有效的,缺少时此值为空字符串。如果使用之前没有将HelpFile设置成为一个有效的文件名,则在调用了Help方法之后,应用程序将对此操作忽略。 


例子: 


procedure TForm1.mnuWindowsHelpClick(Sender:TObject); 


begin 


Application.HelpFile:=’winhelp.hlp’; 


Application.HelpCommand(HELP_FINDER,0); 


end; 


 


HelpJump方法 


 


对应对象:TApplication 


声明:function HelpJump(const JumpID:string):Boolean; 


功能:HelpJump方法用于打开一个Windows Help的指定的页。 


HelpJump方法驱动Windows Help应用程序的WINHELP.EXE文件,并且打开了包含有JumpID参数所指定的上下文字符串的页。如果Application的HelpFile属性包含有一个有效的Help文件名的引用,则HelpJump将返回真,否则返回假。为了创建一个上下文字符串可以参考Mircosoft Help WorkShop用户手册。 


例子: 


procedure TForm1.mnuGotoHelpClick(Sender:TObject); 


begin 


Application.HelpFile:=’my_apps_help.hlp’; 


Application.HelpJump(hlpMyIdentifier); 


end; 


 


HintColor属性 


 


对应对象:TApplication 


声明:property HintColor:TColor; 


功能:HintColor属性用来确定在应用程序中出现的工具的提示窗口的颜色值。 


HintColor属性确定了应用程序所使用的工具提示窗口的背景颜色,这个颜色可以被设置成为任何的系统支持的颜色。一些通用的颜色是clBlack,clWhite,clYellow,clCaption及clWindow。HintColor是运行时有效的属性。可以通过各种组件的Hint属性来访问提示。 


例子: 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


Application.HintColor:=clAqua; 


Form1.Hint:=’The HintColor demo program’; 


Form1.ShowHint:=True; 


end; 


 


HintHidePause属性 


 


对应对象:TApplication 


声明:property HintHidePause:Integer; 


功能:当用户使用鼠标指针在显示的工具提示上没有立即移开时,HintHidePause属性用来确定工具提示的时间长短。 


在缺少的情况时,工具的提示及在它消失之前显示约2500毫秒。用户可以用这个属性修改显示的时间长度,时间单位是毫秒。这个属性是在运行时有效的。可以使用每个组件的Hint属性来访问工具提示。 


例子: 


procedure TForm1.FormCreate(Sender:TObject(; 


begin 


//Set the HintHidePause to 5 seconds 


Application.HintHidePause:=5000; 


end; 


 


HintPause属性 


 


对应对象:TApplication 


声明:property HintPause:Integer; 


功能:HintPause属性用来指定在一个工具提示显示之前的所显示的时间长短。 


当鼠标在一个将被显示的工具提示之上停留一段时间后,工具提示才显示帮助。这个停留的时间可以由HintPause属性来确定,单位是以毫秒来计算。缺少蝗时间是800毫秒。一般可以使用每个组件的Hint属性来访问组件。 


例子: 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


//Set the HintHidePause to 5 seconds 


Application.HintHidePause:=5000; 


//Set the HintPause to 1 second 


Application.HintPause:=1000; 


end; 


 


HintShortPause属性 


 


对应对象:TApplication 


声明:property HintShortPause:Integer; 


功能:HintShortPause属性用来确定在绘制之前工具提示的延迟时间的长短。 


HintShortPause用于当用户移动鼠标经过了一系列的与工具提示相关联的组件时,禁止工具提示的快速绘制。它确定了工具提示在重新显示之前的等待的时间长短,如果工具提示在近期已经显示过并且鼠标指针再次移动到这个组件上时,HintShortPause将显示在工具再次显示之前的延迟的时间。这个属性在运行时是有效有,时间的单位是毫秒,在缺少时的值是50毫秒。工具提示可以通过组件的Hint属性访问。 


例子: 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


//Set the HintPause to 1 second 


Application.HintPause:=1000; 


//Set the HintShortPause to 1/10th of a second 


Application.HintShortPause:=100; 


end; 


 


Icon属性 


 


对应对象:TApplication 


声明:property Icon:TIcon; 


功能:Icon属性确定一个代表应用程序的图标。 


每一个应用程序的图标Icon属性出现在应用程序任务栏窗口的按钮上,人微言轻应用程序主窗体标题栏的图标,并用来作为在文件浏览器中应用程序的图标。虽然图标的Icon属性可以使用代码来设置,但一般从Delphi中的Project Options对话框中的Application的标签中设置。如果没有改变在选项中的图标,那么当用户在Shell中查看时,可以为自己的应用程序获得缺少的“火炬”图标。 


例子: 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


//Set the application icon 


Application.Icon.LoadFromFile(‘d:BorlandDelphi 4ImagesIconsEarth.ico’); 


end; 


 


Initialize方法 


 


对应对象:TApplication 


声明:procedure Initialize; 


功能:Initialize方法一般是应用程序调用的第一个方法。 


当用户建立了一个新的Delphi应用程序项目时,Initialize将自动地被添加到用户的项目资源上,如果用户的应用程序不是一个OLE自动化服务器,则用户可以删除初始化的这一行代码。对于OLE的自动化服务器,Initialize将使用系统寄存器来存储OLE自动化服务器的类。一个OLE自动化服务器是一个应用程序或一个DLL,它将OLE对象输送给OLE自动化客户。 


例子: 


program Project1; 


uses 


Forms, 


Unit1 in ‘Unit1.pas’{Form1}; 


{$R *.RES} 


begin 


Application.Initialize; 


Applocation.Title:=’Delphi TApplication Demo Program’; 


Application.CreateForm(TForm1,Form1); 


Application.Run; 


end; 


 


MainForm属性 


 


对应对象:TApplication 


声明:property MainForm.:TForm; 


功能:MainForm属性用来指示哪一个窗体是应用程序的主窗体。 


MainForm属性在运行时有效的,它是只读型的。主窗体是当应用程序被执行时被最先建立的窗体,当主窗体被关闭时应用程序也被关闭。主窗体可以通过项目选项对话框的窗体页来设置。 


例子: 


program Project1; 


uses 


Forms, 


Unit1 in ‘Unit1.pas’{Form1}; 


Unit2 in ‘Unit2.pas’{Form2}; 


{$R *.RES} 


begin 


Application.Initialize; 


Application.Title:=’MainForm. Demo Program’; 


Application.CreateForm(TForm1,Form1); 


Application.CreateForm(TForm2,Form2); 


Application.Run; 


end; 


 


MessageBox方法 


 


对应对象:TApplication 


声明:function MessageBox(Text,Caption:PChar;Flags:Word):Integer; 


功能:MessageBox方法可以显示一个对话框,在对话框中包含了一条信息和一个及多个按钮。 


MessageBox方法是TApplication中的一个经常使用的方法,它包含了Windows API MessageBox函数。使用过Windows的朋友都看到过MessageBox,可以使用VB或Delphi来创建它们。以下是Flags允许的一些值的组合。 


标 记 值 

意 义 


MB_ABORTRETRYIGNORE 

出现3个按钮:Abort,Retry,Ignore。 


MB_APPLMODAL 

对于应用程序的信息框是模式的,即当返回到应用程序之前用户必须单击一个键,MB_APPLMODAL由缺少值设置,对应的行为可以使用MB_SYSTEMMODAL或MB_TASKMODAL来改变。 


MB_DEFAULT_DESKTOP_ONLY 

信息框必须出现在缺少的桌面上,这个桌面是用户注册的桌面。 


MB_DEFBUTTON1 

信息框的第一个按钮是缺省的按钮。 


MB_DEFBUTTON2 

信息框的第二个按钮是缺省的按钮。 


MB_DEFBUTTON3 

信息框的第三个按钮是缺省的按钮。 


MB_DEFBUTTON4 

信息框的第四个按钮是缺省的按钮。 


MB_HELP 

在信息框上添加一个Help按钮,当按F1或此按钮时可以引起Help事件。 


MB_ICONASTERISK 

与MB_ICONFORMATION的相同。 


MB_ICONERROR 

与MB_ICONHAND相同。 


MB_ICONEXCLAMATION 

出现一个感叹号的图标。 


MB_ICONHAND 

与MB_ICONSTOP相同。 


MB_ICONINFORMATION 

出现一个小写的i图标。 


MB_ICONQUESTION 

出现一个问号?的图标。 


MB_ICONSTOP 

出现一个红色的叉子×的图标。 


MB_ICONWARNING 

与MB_ICONEXCLAMATION的相同。 


MB_OK 

信息框出现一个按钮,按钮标题是OK。 


MB_OKCANCEL 

信息框出现两个按钮,按钮标题是OK和Cancel。 


MB_RETRYCANCEL 

信息框出现两个按钮,按钮标题是Retry和Cancel。 


MB_RIGHT 

信息框内的信息是向右对齐的。 


MB_TRLREADING 

信息框内的文字对于Hebrew和Arabic系统来说是向右对齐的。 


MB_SERVICE_NOTIFICATION 

允许信息框在一个没有被注册的桌面上显示。 


MB_SETFORMEGROUND 

使信息框成为当前的窗口。 


MB_SYSTEMMODAL 

此信息框不允许用户在它被关闭之前进行任何的其他操作,这个标记可以为十分重要的信息进行保留。 


MB_TASKMODAL 

与MB_APPLMODAL相同。 


MB_YESNO 

信息框有两个按钮,按钮标题是Yes和No。 


MB_YESNOCANCEL 

信息框内有三个按钮,按钮标题是Yes,No和Canel。 


 



对于此属性的返回值类型可见下表: 


命名的返回值 

返回数值 

意 义 


IDABORT 

没有足够的内存空间来显示信息框。 



用户选择了Abort按钮功能。 


IDCANCEL 

用户选择了Cancel按钮功能。 


IDIGNORE 

用户选择了Ignore按钮功能。 


IDNO 

用户选择了No按钮功能。 


IDOK 

用户选择了OK按钮功能。 


IDRETRY 

用户选择了Retry按钮功能。 


IDYES 

用户选择了Yes按钮功能。 


 



例子: 


//Close the application 


procedure TForm1.mnuFileQuitClick(Sender:TObject); 


begin 


if Application.MessageBox(‘Do you really want to quit?’,’Quit?’, 


MB_YESNO+MB_ICONHAND)=IDYES then 


Close; 


end; 


 


Minimize方法 


 


对应对象:TApplication 


声明:procedure Minimize; 


功能:Minimize方法使一个应用程序最小化成为一个任务栏按钮。 


Minimize方法使应用程序的每一个窗口和当前窗口都变为最小化形式。 


例子: 


procedure TForm1.mnuMinimizeClick(Sender:TObject); 


begin 


Application.Minimize; 


end; 


OnActivate事件 


对应对象:TApplication 


声明:property OnActivate:TNotifyEvent; 


功能:OnActivate事件是在应用程序被激活时产生。 


当应用程序接受一个焦点时OnActivate事件将产生。由于它对应TApplication对象不能从对象探测器直接获得,所以要人工对应地创建一个OnActivate事件的处理代码。 


例子:


unit Unit1; 


interface


uses 


Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs; 


 


type 


TForm1=class(TForm); 


procedure FormCreate(Sender:TObject); 


//add these function declarations manually 


procedure AppActivate(Sender:TObject); 


procedure AppDeactivate(Sender:TObject); 


private 


{Private declarations} 


public 


{Piblic declarations} 


end; 


 


var 


Form1:TForm1; 


 


implementation 


 


{$R *.DFM} 


 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


//determine which methods will handle OnActivate and OnDeactivate 


Application.OnActivate:=AppActivate; 


Application.OnDeactivate:=AppDeactivate; 


end; 


 


//Add this event handler manually 


procedure TForm1.AppActivate(Sender:TObject); 


begin 


//Perform. task here thate you want to happen every time the application is activated. 


end; 


 


//Add this event handler manually 


procedure Tform1.AppDeactivate(Sender:TObject); 


begin 


//Perform. task here that you want to happen every time the application is deactivated. 


end; 


 


end; 


 


OnDeactivate事件 


 


对应对象:TApplication 


声明:property OnDeactivate:TNotifyEvent; 


功能:OnDeactivate事件在应用程序推动焦点时将发生。 


OnDeactivate事件允许用户在应用程序无效之前结束任务。由于对应的TApplication对象不能在对象探测器中被获得,所以,用户需要人工地创建OnDeactivate事件的处理代码。 


例子: 


unit Unit1; 


interface 


 


uses 


Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs; 


 


type 


TForm1=class(TForm); 


procedure FormCreate(Sender:TObject); 


//add these function declarations manually 


procedure AppActivate(Sender:TObject); 


procedure AppDeactivate(Sender:TObject); 


private 


{Private declarations} 


public 


{Piblic declarations} 


end; 


 


var 


Form1:TForm1; 


 


implementation 


 


{$R *.DFM} 


 


procedure TForm1.FormCreate(Sender:TObject); 


begin 


//determine which methods will handle OnActivate and OnDeactivate 


Application.OnActivate:=AppActivate; 


Application.OnDeactivate:=AppDeactivate; 


end; 


 


//Add this event handler manually 


procedure TForm1.AppActivate(Sender:TObject); 


begin 


//Perform. task here thate you want to happen every time the application is activated. 


end; 


 


//Add this event handler manually 


procedure Tform1.AppDeactivate(Sender:TObject); 


begin 


//Perform. task here that you want to happen every time the application is deactivated. 


end; 


 


end; 


 


OnException事件 


 


对应对象:TApplication 


声明:property OnException:TExceptionEvent; 


功能:OnException事件在应用程序出现了一个无法处理的异常时发生。 


OnException事件类似于异常的全局else,如果用户不明显地处理一个异常,可以通过HandleException来发出OnException事件。缺省时HandleException将调用ShowException,并将出现异常的信息框。如果用户想改变对应的操作,可以对OnException事件添加处理代码。TExceptionEvent的类型是OnException,它可以被声明成为:TExceptionEvent=procedure (Sender:TObject;E:Exception) of Object; 


Sender参数声明了产生异常的对象,E参数是异常的信息。 


例子: 


unit Unit1; 


interface 


uses


Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;


type


TForml=class(TForm)


Buttonl:Button;


label1:Tlabel;


procedure FormCreate(Sender:TObject);


procdurc AppException(Sender:Tobect;E: Exception);


procedure ButtonlClick(Sender:TObject);


private


{ Private declarations }


public


{ Public declarations }


end;


var


Fom1: TForml;


X: Integer;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnException:= AppException;


X:=100;


Iabell.Caption:=IntToStr(X);


end;


procedure TForml.AppException(Sender: Tobject;E: Exception);


begin


if Sender=Button1 then


X:=0;


end;


procedure Tform1.Button1C1ick(Sender:TObject);


var Y:Integer;


begin


Y:=0;


try


X:=X div Y;


except


on ErangeError do


X:=0;


end;


 


 


 


 


 


end.


OnHelp事件 


对应对象:TApplication


声明: property OnHelp:THelpEvent;


功能:OnHelp事件用于当用户程序出现并接到一个帮助请求时发出帮助。


HelpContext和HelpJump方法用于产生OnHelp。如果用户想在每一个帮助执行


时执行一些任务,可以创建OnHelp事件的事件处理代码。


OnHint事件 


对应对象:TApplication


声明:property OnHint:TNotifyEvent;


功能:当一个指针处于一个组件上,此组件的Hint属性包含有一个有效字符串时,OnHint


事件将发生。


为了使OhHint事件发生,组件的Hint属性必须包含一个非空的字符串。用户可


以使用OnHint事件来执行当该事件发生时用户希望发生的任务。一般情况时,


应用程序利用事件窗体状态栏上的Hint字符或帮助信息。


例子:


unit Unit1;


interface


 


uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,


Buttons,ExtCtrls,ComCtrls;


type


TForm1 = class(TForm)


StatusBar1: TStatusBar;


Panel1: TPanel;


SpeedButton1: TSpeedButton;


SpeedButton2: TSpeedButton;


SpeedButton3: TSpeedButton;


SpeedButton4: TSpeedButton;


SpeedButton5: TSpeedButton;


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


//manually added handler for the OnHint event


procedure HandleHints(Sender:TObject);


end;


 


 


 


 


 


 


var


Form1: TForm1;


implementation


{$R *.dfm}


//Set the OnHint event to be handled by HandleHints


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnHint:= HandleHints;


end;


//When an OnHint event occurs,display the hint in the status bar


procedure Tform1.HandleHints(Sender:TObject);


begin


StatusBar1.SimpleText:=Application.Hint;


end;


end.


OnIdIe事件 


对应对象:TApplication


声明: property OnIdle: TIdleEvent;


功能:在应用程序空闲时将发生OnIdle事件c


如果用户想在应用程序空闲时处理一些操作,可以将一个事件处理代码添加到


OnIdle事件上去。TIdleEvent的类型被声明成为OnIdLe,定义是:


TidleEvent=procedure(Senger:Tobject; var Done: Boolean) of object;


其中Done参数缺省时为真,声明应用程序等待系统的信息。当Done参数为假


时,应用程序将不处理系统信息。使用OnIdle事件要特别注意,许多应用程序


不需要处理这个事件。


例子:


unit Unit1;


interface


 


uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,


ComCtrls,StdCtrls;


type


TForm1 = class(TForm)


StatusBar1: TStatusBar;


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


procedure Waiting(Sender:TObject; var Done: Boolean);


 


 


 


 


 


end;


 


var


Form1: TForm1;


implementation


{$R *.dfm}


//Setup an OnIdle event handler


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnIdle:= Waiting;


end;


//the handler for OnIdle events


procedure Tform1.Waiting(Sender:TObject; var Done: Boolean);


begin


StatusBar1.SimplePanel:=True;


StatusBar1.SimpleText:= ‘OK!Let‘s get going’;


Done:=True;


end;


OnMessage事件 


对应对象:TApplication


声明:TMessageEvent=procedure(var Msg: TMsg; var Handled: Boolean) of object;


property OnMessage: TmessageEvent;


功能:OnMessage事件在应用程序收到一个系统信息时被激发。


如果用户想使应用程序对一个特定的信息作出一个特定的响应,则可以对


OnMessage事件来创建一个对应的处理代码来完成。应用程序中的许多信息是被自


动地处理并由Delphi来为用户传递,采用这个方法可以使用户使用API的方法


处理信息。


例子:


unit Unit1;


interface


 


uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,


StdCtrls,ComCtrls;


type


TForm1 = class(TForm)


ListBox1: TListBox;


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


 


 


 


 


public


procedure MessageHandler(var Msg:TMsg; var Handled:Boolean);


end;


var


Form1: TForm1;


implementation


{$R *.dfm}


//Determine the handler for OnMessage


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnMessage:=MessageHandler;


end;


//The OnMessage event handler


procedure Tform1.MessageHandler(var Msg:TMsg;var Handled:Boolean);


begin


ListBox1.Items.Add(‘message recevied’);


If ListBox1.Items.Count>15 then


ListBox1.Clear;


End;


end.


OnMinmize事件 


对应对象:TApplication


声明: TNotifyEvent=procedure(Sender:Tobject) of object;


property OnMinimize:TnotifyEvent;


功能:当应用程序被最小化时将发生对应的OnMinimize事件。


和一般的TApplication事件一样,当应用程序被最小化时,用户可以创建对应的


特定的某些操作任务,并可以通过为OnMinimize事件添加一个特定的处理代码


来实现。OnMinimize事件被激发,是由于Minimize方法被调用或应用程序的主


窗口的最小化按钮被点击所造成的。


例子:


unit Unit1;


 


interface


 


uses


Windows, Messages, SysUtils , Classes, Graphics, Controls, Forms,Dialogs;


type


TForm1 = class(TForm)


procedure FormCreate(Sender: TObject);


private


 


 


 


 


{ Private declarations }


public


//manully added method declarations


procedure MinimizeHandler(Sender:TObject);


procedure RestoreApp(Sender:TObject);


end;


var


Form1: TForm1;


 


implementation


 


{$R *.dfm}


//Set custom handlers for the OnMinimize and OnRestore events


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.Title:=’My application’;


Application.OnMinimize:=MinimizeHandler;


Application OnRestore:=RestoreApp;


end;


//Change the app title back when the app is Minimized


procedure Tform1.MinimizeHandler(Sender:TObject);


begin


Application.Title:=’Minimized!’;


End;


//Change the app title back when it is restore


procedure Tform1.RestoreApp(Sender:TObject);


begin


Application.Title:=’My application’


end;


end.


OnRestore事件 


对应对象:TApplication


声明: TNotifyEvent=procedure(Sender:TObject) of object;


property OnRestore:TNotifyEvent;


功能:当一个最小化的应用程序被还原时,OnRestore事件发生。


和一般的TApplication事件一样,当应用程序被还原时用户可以创建对应的任务


操作,并可以处理对应的OnRestore事件的代码来完成特定的任务。


例子:


unit Unit1;


 


interface


 


 


 


uses


Windows, Messages, SysUtils , Classes, Graphics, Controls, Forms,Dialogs;


type


TForm1 = class(TForm)


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


//manully added method declarations


procedure MinimizeHandler(Sender:TObject);


procedure RestoreApp(Sender:TObject);


end;


var


Form1: TForm1;


implementation


{$R *.dfm}


//Set custom handlers for the OnMinimize and OnRestore events


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.Title:=’My application’;


Application.OnMinimize:=MinimizeHandler;


Application.OnRestore:=RestoreApp;


end;


//Change the app title back when the app is Minimized


procedure Tform1.MinimizeHandler(Sender:TObject);


begin


Application.Title:=’Minimized!’;


End;


//Change the app title back when it is restore


procedure Tform1.RestoreApp(Sender:TObject);


begin


Application.Title:=’My application’


end;


end.


OnShowHint事件 


对应对象:TApplication


声明:THintInfo=record


HintControl:Tcontrol;


 


 


 


 


 


 


HintPos: TPoint;


HintMaxWidth: Integer;


HintColor: TColor;


CursorRect: TRect;


CursorPos: TPoint;


ReshowTimeout: Integer;


HideTimeout: Integer;


HintStr: string;


end;


TShowHintEvent = procedure (var HintStr: string; var CanShow: Boolean; var


HintInfo: THintInfo) of object;


property OnShowHint: TShowHintEvent;


功能:当应用程序要显示一个工具提示时OnShowHint事件将发生。


OnShowHint事件在工具提示被显示之前发生,因此这个事件允许用户在工具提


示显示之前改变它对应的操作。TShowHintEvent是一个指针类型,它指向显示


控件工具所提示的方法。工具提示的文字是由HintStr参数来提供的。如果CanShow


参数是真,则工具提示可以显示。如果这个参数为假,则提示不能被显示。


HintInfo参数的类型是THintInfo的,提示一个Pascal的记录。THintInfo记录中


的内容确定了工具提示的属性。


例子:


unit Unit1;


 


interface


 


uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,


Dialogs,Buttons,ExtCtrls,ComCtrls;


 


type


TForm1 = class(TForm)


Panel1: TPanel;


StatusBar1: TStatusBar;


SpeedButton1: TSpeedButton;


SpeedButton2: TSpeedButton;


SpeedButton3: TSpeedButton;


SpeedButton4: TSpeedButton;


SpeedButton5: TSpeedButton;


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


Procedure HandleHints(Sender:TObject);


 


 


Procedure DoBeforeHint(var HintStr:String;var CanShow:Boolean;


var HintInfo:THintInfo);


end;


 


var


Form1: TForm1;


 


implementation


 


{$R *.dfm}


 


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnHint:=HandleHints;


Application.OnShowHint:=DoBeforeHint;


Application.Hint:=‘Hello,World!‘;


end;


Procedure TForm1.HandleHints(Sender:TObject);


begin


StatusBar1.SimpleText:=Application.Hint;


end;


Procedure DoBeforeHint(var HintStr:String;var CanShow:Boolean;var HintInfo:THintInfo);


begin


//If the hint is for the Abort button,display it in red


if HintInfo.HintControl=SpeedButton5 then


HintInfo.HintColor:=clRed;


 


end;


end.


Restore方法 


对应对象:TApplication


声明: procedure Restore;


功能:Restore方法还原一个被最小化的应用程序。


Restore方法被用于把主窗口还原成为它被最小化之前的大


例子:


unit Unit1;


 


interface


 


uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, StdCtrls;


 


type


TForm1 = class(TForm)


Edit1: TEdit;


procedure FormCreate(Sender: TObject);


private


{ Private declarations }


public


//Manually added function declaration


procedure MinApp(Sender:TObject);


 


end;


var


Form1: TForm1;


 


implementation


 


{$R *.dfm}


//Handle the OnMinimize event


procedure TForm1.FormCreate(Sender: TObject);


begin


Application.OnMinimize:=MinApp;


end;


//If the Edit boxis not fil1ed in,restore the application Window when


//the user tries to minimize it


procedure TForm1.MinApp(Sender:TOBject);


begin


if Edit1.Text=‘‘ then


begin


Application.Restore;


Application.MessageBox(‘You must fill in the edit field first!‘,


‘Restore Demo‘,MB_OK);


end;


end; 


end.


Run方法 


对应对象:TApplication


声明: procedure Run;


功能:Run方法用来执行应用程序。


Run方法自动被每个Delphi应用程序所调用,一般在项目代码中它位于最后


一行。


例子:


program Project1;


uses


Forms,


Unit1 in ‘Unit1.pas‘ {Form1};


{$ R*.RES}


begin


Application.Initialize;


Application.CreateForm(TForm1,Form1);


Application.Run;


end;


 


Title 属性 


对应对象:TApplication


声明:Property Title:string;


功能:Title属性用来确定任务栏按钮中所标识应用程序的文字。


Title属性可以具有一个与主窗体不同的标题,由此窗体经常具有和他的任务栏


不同的标题。应用程序的标题可以使用Title属性来设置或者通过项目选项的应


用页的IDE来确定,应用程序的缺省名可作为项目的名。如果用户没有重新命名,


则应用程序将以PROJECT1被调用。


例子:


procedure TForm1.FormCreate(Sender:TObject);


begin


Application.title:=‘Chris-Travel Expense Report‘;


Form1.Caption:= Application.Title;


end;

 

阅读全文 | 回复(0) | 引用通告 | 编辑 | By: 皮皮爸爸
  • 标签:Delphi 
  • 发表评论:

      大名:
      密码: (游客无须输入密码)
      主页:
      标题:
      粗体 斜体 下划线 插入引用 插入表情
    Powered by Oblog.