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

BringToFront方法  

对应对象:TApplication

声明:procedure   BringToFront;

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

CreateFom方法  

对应对象:TApp1ication

声明:procedure   CreateForm(InstanceClass:   TComponentClass;  

var   Reference);

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

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                 0                                             此项是为与4.0版本之前的帮助
                                                                                        引擎相兼容而提供的命令。对
                                                                                        应32位应用程序应使用HELP_FINDER命令。
HELP_CONTEXT                   主题的上下文标识符           显示由Data值标识的标题。
HELP_CONTEXTPOPUP         主题的上下文标识符           创建一个显示了Data值指定的主题的弹
                                                                                        出式窗口
HELP_FINDER                     0                                             显示一个4.0版本Helptopics对话框。
HELP_FORCEFILE               0                                             用于保证WinHelp显示正确的Help文件,
                                                                                        如果不是正确的显示,则装载正确的
                                                                                        Help文件。
HELP_INDEX                       0                                             该命令与4.0以前的版本相兼容。新的
                                                                                        应用程序应该使用HELP_FINDER来代替
HELP_KEY                           关键字字符串的地址           显示由关键字标识的标题,关键字的
                                                                                        地址由Data传递。
HELP_PARTIALKEY             关键字字符串的地址           如果完全匹配,则显示由关键字标识
                                                                                        的主题,关键字的地址由Data传递,
                                                                                        如果有一个以上的匹配,则显示Index
                                                                                        标签
HELP_QUIT                         0                                             如果没有其他的应用程序请求Help,
                                                                                        则将关闭Help应用程序。
HELP_SETCONTENTS           对Contents主题的上           当用户按击Contents按钮时,指定
                                          下文的标识符                       要显示的主题。
HELP_SETINDEX                 对索引主题上下文的           指定要在Index中显示的关键字列表。
                                          标识符                        
HELP_HELPONHELP             0                                             使用Windows   Help显示Help。

HelpFile属性      

对应对象:TApplication  

声明:property   HelpFile:String;  

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

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:\Borland\Delphi   4\Images\Icons\Earth.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                                   0                         没有足够的内存空间来显示信息框。  
                                                3                         用户选择了Abort按钮功能。  
IDCANCEL                                 2                         用户选择了Cancel按钮功能。  
IDIGNORE                                 5                         用户选择了Ignore按钮功能。  
IDNO                                         7                         用户选择了No按钮功能。  
IDOK                                         1                         用户选择了OK按钮功能。  
IDRETRY                                   4                         用户选择了Retry按钮功能。  
IDYES                                       6                         用户选择了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;  

 

nDeactivate事件      
对应对象: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;

 

OnIdIe事件  

对应对象:TApplication
声明:     property   OnIdle:   TIdleEvent;
功能:在应用程序空闲时将发生OnIdle事件,如果用户想在应用程序空闲时处理一些操作,可以将一个事件处理代码添加到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方法被用于把主窗口还原成为它被最小化之前的大

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;  

转载于:https://www.cnblogs.com/dgjack/archive/2010/11/29/1891275.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值