我不了解TApplication这个东东,哪位富翁可以告诉我!(100分)

  • 主题发起人 主题发起人 xwb
  • 开始时间 开始时间
X

xwb

Unregistered / Unconfirmed
GUEST, unregistred user!
我很想知道一些TApplication这个东东是干什么的,每个程序实例有一个Application,每个
DLL也有自己的Application,我都糊涂了!
 
在Windows
里面exe,dll
都是应用程序,
如果在主程序里调用DLL
就必须统一这两个Application
 
这么说,Borland在DLL中也存在着一个Application,我跟踪DLL的入口函数DllEntryPoint(),
发现DLL中的Application和exe中的Application内容一样?
 
TApplication encapsulates a windowed application. The methods and properties introduced in TApplication reflect the fundamentals established in the Windows operating system to create, run, sustain, and destroy an application. TApplication thereby simplifies the interface between the developer and the Windows environment. For this purpose TApplication encapsulates behavior for

Windows message processing.
Context-sensitive online help.
Menu accelerator and key processing.
Exception handling.
Managing the fundamental parts defined by the Windows operating system for an application, such as MainWindow, WindowClass, and so on
Each GUI application automatically declares an Application variable as the instance of the application. If the Delphi application is not a Web server application, control panel applet, or NT service application, this variable is of type TApplication.

TApplication does not appear on the Component palette, nor is it available in the form designer to visually manipulate
so it has no published properties. Nevertheless, some of its public properties can be set or modified at design time in the Forms and Application pages of the Project|Options dialog box. In addition, you can add a TApplicationEvents component to any form in the project to intercept the application抯 events, and supply event handlers using the IDE.

//来自Delphi自带的帮助,不用我翻译了吧
 
转贴:

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
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。




例子:

//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:/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




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


 
很详细了,,,呵呵,,,,
 
明白了吧
 
后退
顶部