delphi 关于TApplication详解

来源:互联网 发布:unity3d 体素 编辑:程序博客网 时间:2024/05/01 03:37

继承关系:

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的所有窗口之上。

CreateForm方法

对应对象:TApplication

声明: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.

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;

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事件,如果用户想在应用程序空闲时处理一些操作,可以将一个事件处理代码添加到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;

关于TApplication详解(2)  

2007-08-12 15:49:44|  分类: Delphi|  标签:|字号 订阅

二、TCommonDialog
  
TCommonDialog--TColorDialog

Color属性
对应对象:TColorDialog
声明:property Color:TColor default clBlack;
功能:Color属性用来确定在颜色对话框中选择哪一个颜色。当用户选择了一个新的颜色时,Color属性将被设置为新颜色的值。

例子:
//Change the color of the selected text when the user choose a
//color from the Color dialog box
procedure TForm1.sbColorClick(Sender: TObject);
begin
  Colordialog1.Execute;
  RichEdit1.SelAttributes.Color:=Colordialog1.Color;
end;

CustomColors属性
对应对象:TColorDialog
声明:property CustomColors:TStrings;
功能:CustomColors属性确定在颜色对话框中可以获得的一种自定义的颜色。CustomColors属性保存了一个字符串的列表,每一个字符串的格式是:ColorX=HexValue,其中ColorX是16个自定义的颜色中的一个,是从ColorA到ColorP,HexValue参数是一个十六进制的数值,它说明了构成颜色的所对应的RGB值。所以,对应于纯白色这个值是FFFFFF,000000是纯黑,使用Color0=000000
说明了把纯黑色传递给颜色选择。当颜色对话框被关闭时,保存了对话框颜色的列表,以便用户可以在下一次使用对话框时使用自定义颜色。

例子:
procedure TForm1.sbColorClick(Sender: TObject);
var X:Integer;
begin
  Colordialog1.CustomColers:= StrCustomColors;
  Colordialog1.Execute;
  RichEdit1.SelAttributes.Color:=Colordialog1.Color;
  StrCustomColors:=Colordialog1.CustomColors;
  //Save StrCustomColors to the registry or an INI file
  //when the program exits…
end;

Options属性
对应对象:TColorDialog
声明: TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp, cdSolidColor,
 cdAnyColor);
  TColorDialogOptions = set of TColorDialogOption;
property Options: TcolorDialogOptions  default[];
功能:Options属性说明了颜色对话框的显示形式和选项。

以下列举了有效的选项值。
选项值              意  义
 
cdFullOpen         当颜色对话框被打开时显示了定制颜色的选项。
cdPreventFullOpen  使在对话框中的定义定制的颜色成为不可用,
                   所以便用者不能定义新的颜色。
cdShowHelp         在对话框之中添加一个帮助按钮。
cdSolidColor       指引系统使用最近的纯颜色的选择。
cdAnyColor         允许使用者选择非纯的颜色(可以被近似的抖动)

缺省时所有的选项是被关闭的。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ColorDialog1.Options:=[ cdFullOpen, cdShowHelp];
end;

OnClose事件
对应对象:TColorDialog
声明:property OnClose:TNotifyEvent;
功能:当一个对话框被关闭时,OnClose事件被引发。当对话框关闭时写入一个OnClose事件的句柄来完成指定的操作。

三、TComponent

ComponentCount属性
对应对象:所有组件
声明:property ComponentCount: Integer;
功能:此属性在运行时有效,它是只读型。同时它标明组件具有的组件数。当用户在设计时可以在窗体上放置一个组件,因此此窗体将变为这个组件的有用者。Components属性例出了当前组件的所有的组件。

例子:
procedure TForml.ButtonlClick(Sender: TObject);
var 
  x: Integer;
begin 
  x := Forml.ComponentCount; 
  Labell.Caption := IntToStr(x);
end; 

ComponentIndex属性
对应对象:所有组件
声明:properrty ComponentIndex: Integer;
功能:此属性说明了拥有者的组件例表中当前的组件的位置。
每个组件包含一个其拥有者的组件数组,此数组是以0为基底的数组。Components属性可以来访问这个数组。CompnentIndex属性列出了它被拥有者的Components数组内部组件的位置,该属性在运行时是有效的,且是只读型。

例子:
procedure TForm1.ButtonlClick(Sender: TObject);
begin 
  Labell.Caption := IntToStr(RadioButton3.ComponentIndex);
end; 

Components属性
对应对象:所有组件
声明:property Components[Index: Integer]: TComponent;
功能:Components属性指出当前数组所拥有的组件数组。
Components属性在运行时是有效的,它是只读型的。它可以用来访问组件所拥有的任何组件(在知道组件的索引时)。一般情况下直接地访问组件边界容易,但是如果用户在运行时动态地创建了许多组件,用户将需要使用这个方法。因为组件数组是以0为基底的,所以第一个组件的索引将是0,第二个组件的索引将是1等。

例子:
//Indirectly access the check boxes owned by the form and check them all
procedure TForml.Button3Click(Sender: TObject);
var 
  x: Integer;
begin 
  for x := 0 to Forml.ComponentCount – 1 do 
  if Forml.Components[x] is TCheckBox then 
    TCheckBox(Form1.Components[x]).Checked := True;
end;  

ComponentState属性
对应对象:所有组件
声明:property ComponentState: TComponentState;
功能:ComponentState属性用来描述组件的状态。
ComponentState属性在运行时是有效的,且它是只读型的。它的类型是TComponentState,被声明成为:TComponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups); TComponentState是一个标志集合,把它们组合在一起可以导出组件的状态,一些公用的标志包括以下:
csDesigning:Delphi环境是设计方式,因此可以编辑组件。
csReading:组件从一个流中读取它的属性值。
csWriting:组件将它的属性值写入一个流中。
组件在内部使用CompnentState属性,可以保证某些程序可以执行。因此,无需经常直接地访问ComponentState。 

DestroyCompoents方法
对应对象:所有组件
声明:procedure DestroyComponents;
功能:DestroyComponents方法撤销当前组件所拥有的全部组件。
DestroyComponents是它在第—次调用Destroying之后由Destroy方法调用的。除非是设计一个组件,一般的情况下是不需要直接访问DestroyComponents的。 

Destroying方法
对应对象:所有组件
声明:procedure Destroying;
功能:Destroying通过在它的ComponentState属性中设置cbDestroying标志,来通知当前组件立刻被撤销(除了在同时由全局TGovemor对象产生一个msgPardon信息)。之后它将对当前组件拥有的每一个组件调用Destroying方法。调用Destroying是由组件的Destroy方法所作出的第一个操作,用户一般不需要直接访问Destroying。 

FindComponent方法
对应对象:所有组件
声明:function FindComponent(const AName: string): TComponent;
功能:FindComponent方法在当前的组件的Components数组中指出给定的组件。被传递给FindComponent中的字符串是被寻找的组件名。例如“Edit1”,“Label1”。FindComponent将返回该组件(如果它存在),否则将返回空。

例子:
//Use FindComponent to obtain another pointer to CheckBoxl
procedure TForml.Button4Click(Sender: TObject);
var 
  MyComponent: TComponent;
begin
  MyComponent := FindComponent('CheckBox1');
  TCheckBox(MyComponent).Checked := True;
end;  

Name属性
对应对象:所有组件
声明:property Name: TComponentName;
功能:Name是一个标识符、它可以用于在Delphi中的源代码和设计环境之间访问组件。De1phi在设计时为添加的组件提供了十分烦琐的缺省名,例如“Forml”,“Form2”等等。用户可以随意地改变它们。当动态的链接组件时,用户可以在源代码的var部分命名组件。

例子:
    动态创建一个按纽控件。
var 
  Form2: TForm2; 
  MyButton: TButton; //the Name property is MyButton

implementation  

{$R *.DFM}  

procedure TForml.FormCreate(Sender: TObject);
begin 
  MyButton := TButton.Create(Self); 
  MyButton.Parent := Form1; 
  MyButton.Height := 32; 
  MyButton.Width := 40; 
  MyButton.Caption := 'Hi'; 
  //set other button properties as needed
end;
警告:在运行时不要改变设计时创建的组件名。Delphi保持对设计时添加的组件方法和事件处理程序的跟踪,在程序运行时改变组件名将导致一些难以应付的事故。 

Owner属性
对应对象:所有组件
声明:property Owner: TComponent;
功能:Owner属性用来指出当前组件的拥有者。
一个窗体对应所有在其上面的组件是它们的拥有者。当一个组件的拥有者被撤销时,它的存储空间同时被释放,那么该组件也就被撤销了,它所占据的内存也被释放。拥有一个组件和作为一个组件的父类是不同的。控件(它是TComponent的派生类)具有一个Parent属性,是对应组件的视觉容器而不是说明它是拥有者。视觉容器像其他包含的控件面板一样,都没有拥有控件,包含的控件仍旧由窗体所拥有。当动态创建组件时,Owner属性由Create方法来设置,在设计时创建的组件将它的Owner属性设置成为当前的窗体。Owner属性在运行时是有效的。 

Tag属性
对应对象:所有组件
声明:property Tag: Longint;
功能:Tag属性用组件存储一个用户定义的长整型值。Tag属性允许用户使用组件存储长整型值,当用户看到它合适时就可以使用它,它的使用是可以选择的。

四、TControl
 
Align
属性
对应对象:TControl
声明:TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);
property Align: TAlign;
功能:Align属性用来确定控件在它的父类中的对齐方式。 Align属性的类型是TAlign,它可以被设置成为以下值中的一个。
值                                 意     义
alNone   组件被保持在它的父类放置的位置,即窗体或面板,它是属性的缺省值。
alTop    组件被移动到窗体的顶端,并且被重新决定大小以充满窗体的宽,组件
         的高度不会受到影响。
alBottom 组件被移动到窗体的底端,并且被重新决定大小以充满窗体的宽,组件
         的高度不会受到影响。
alLeft   组件被移动到窗体的左边,并且被重新设定大小以充满窗体的高度,组
         件的宽度不会受到影响。
alRight  组件被移动到窗体的右边,并且被重新设定大小以充满窗体的高度,组
         件的宽度不会受到影响。
alClient 组件被重新决定大小以充满一个窗体的用户区。如果另一个组件已经占据
         了用户区的部分,那么组件将重新在用户区中的剩余部分中设定大小。

BoundsRect属性
对应对象:TControl
声明:TRect = record
case Integer of
  0: (Left, Top, Right, Bottom: Integer);
  1: (TopLeft, BottomRight: TPoint);
end;
property BoundsRect: TRect;
功能:BoundsRect属性用来指出控件的边界的矩形。 BoundsRect属性包含了描述控件父类区域的边界的矩形。矩形的坐标是在父类坐标系中给定。  

Caption属性
对应对象:TControl
声明:TCaption = type string;
property Caption: TCaption;
功能:Caption属性用来确定用于标记控件的字符串。 控件的标题可以被修改,但在运行时却很少被修改。由于Caption属性对用户禁止编辑,所以要允许用户编辑显示在控件中的文字的控件,应使用Text属性而不是Caption属性。Caption属性的类型为TCaption,它是一个标准的字符串。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Caption := 'Delphi Explorer';
  Button1.Caption := 'OK';
  Label1.Caption := 'Captions are relatively static';
end;  

ClientHeight属性
对应对象:TControl
声明:property ClientHeight: Integer;
功能:ClientHeight属性用来说明控件用户区的高度。 ClientHeight属性对应除窗体之外的所有控件运行时的属性。它用像素来进行度量,许多控件与ClientHeight属性具有相同的高度值。

例子:
procedure TForm1.FormCreate(Sender: TObject);
var
  X, Y: Integer;
begin
  X := Form1.ClientWidth;
  Y := Form1.ClientHeight;
  //...
end;  

ClientOrigin属性
对应对象:TControl
声明:TPoint = record
  X: Longint;
  Y: Longint;
end;

property ClientOrigin: TPoint;
功能:ClientOrigin属性说明包含控件的用户区的左上角的坐标值。 ClientOrigin属性包含了控件用户区的上部左边的像素的坐标值,坐标是以屏幕的坐标值进行度量。

例子:
procedure TForm1.FormCreate(Sender: TObject);
var
  OriginPoint: TPoint;
begin
  OriginPoint := Form1.ClientOrigin;
end;  

ClientRect属性
对应对象:TControl
声明:TPoint = record
  X: Longint;
  Y: Longint;
end;
TRect = record
case Integer of
  0: (Left, Top, Right, Bottom: Integer);
  1: (TopLeft, BottomRight: TPoint);
end;
property ClientRect: TRect;
功能:ClientRect属性说明了包含有控件的用户区的尺寸大小。 ClientRect属性是运行时有效,是只读型的。属性包含了控件用户区的边界上下左右的像素位置,对应TRect类型结构区域的左边和上部的坐标值是0,对应的下边和右边的像素值说明了区域的高度和宽度。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Canvas.Brush.Color := clBlue;
  Form1.Canvas.FillRect(Form1.ClientRect);
end;  

ClientWidth属性
对应对象:TControl
声明:property ClientWidth: Integer;
功能:ClientWidth属性说明包含控件用户区的宽度。
ClientWidth属性是对应除窗体之外的所有控件都有效运行时的属性。该属性表示了控件用户区的水平大小,宽度以像素来度量。对于许多控件ClientWidth属性和Width属性是一致的,而窗体则将用户区视为窗体框架内的成分,窗体的ClientWidth属性通常将小于Width属性的值。

例子:
procedure TForm1.FormCreate(Sender: TObject);
var
  X, Y: Integer;
begin
  X := Form1.ClientWidth;
  Y := Form1.ClientHeight;
  //...
end;

Color属性
对应对象:TControl
声明:property Color: TColor;
功能:Color属性用来确定控件的颜色。
用户可以使用Color属性来获得颜色或设置控件的颜色。用户可以通过手工来为控件的颜色属性赋予一个值进行重新设置。Color属性是TColor类型的值,它有许多有效的颜色值可以使用,详情见下表。

值                                   颜     色
clBlack                            黑色Black。
clMaroon                           栗色Maroon。
clGreen                            绿色Green。
clOlive                            橄榄绿Olive green。
clNavy                             深蓝色Navy blue。
clPurple                           紫色Purple。
clTeal                             深青色Teal。
clGray                             灰色Gray。
clSilver                           银色Silver。
clRed                              红色Red。
clLine                             浅绿色Lime green。
clBlue                             蓝色Blue。
clFuchsia                          紫红色Fuchsia。
clAqua                             浅绿色Aqua。
clWhite                            白色White。
clBackground                       当前的系统桌面的背景颜色
clActiveCaption                    当前的被激活窗口的标题栏的颜色。
clInactiveCaption                  当前的没有被激活的窗口的标题栏的颜色。
clMenu                             当前的菜单背景的颜色。
clWindow                           当前的窗口背景的颜色。
clWindowFrame                      当前的窗口框架的颜色。
clMenuText                         当前的菜单上的文本的颜色。
clCaptionText                      当前的被激活窗口的标题栏的文本的颜色。
clActiveBorder                     当前的被激活窗口的边界颜色。
clInactiveBorder                   当前的没有被激活窗口的边界颜色。
clAppWorkSpace                     当前的应用程序工作区的颜色。
clHighlight                        当前的被选择文本的背景颜色。
clHighlightText                    当前的被选择文本的颜色。
clBtnFace                          当前的按钮表面的颜色。
clBtnShadow                        当前的按钮投影的阴影颜色。
clGrayText                         当前的无效文本的颜色。
clBtnText                          当前的按钮上文本的颜色。
clInactiveCaptionText              当前的被激活窗口标题栏的文本颜色。
clBtnHighlight                     当前的按钮上高亮度的颜色。
cl3DDkShadow                       只有对Windows95或NT4.0系统:三维
                                   显示元素阴影的颜色。
cl3DLight                          只有对Windows95或NT4.0系统:对于
                                   三维显示元素的亮面(朝向光源的面)
clInfoText                         只有对Windows95或NT4.0系统:
                                   ToolTip(工具提示)的文本颜色。
clInfoBk                           只有对Windows95或NT4.0系统:
                                   ToolTip(工具提示)的背景颜色
ControlState属性
对应对象:TControl
声明:TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState, csAlignmentNeeded, csFocusing, csCreating);
property ControlState: TControlState;
功能:ControlState属性用来查询控件运行时的状态。
ControlState属性用来指明运行的每一个时刻控件的状态。属性属于TControlState类型,这个类型是一个标志集,它可以被设置成为以下值的组合形式。

值                    意     义
csLButtonDown    点击鼠标的左按钮不放,这个是为所有的鼠标按下事件设置的。
csClicked        和csLButtonDown一样,只是在ControlStyle属性包含
                 csClickEvents标志时它才被设置,以说明鼠标按下时的事件。
csPalette        说明一个WM_PALETTCHANGED信息被控件接受或者被控件的父类接受。
csReadingState   控件正在从一个流中读取它的状态。
csAlignmentNeeded 当队列再次被允许时控件需要重新排列它自己。
csFocusing        应用程序过程焦点送给控件。这不能保证控件就将收到焦点,
                  但是防止了递归的调用。
csPaintCopy       控件被复制,意味着控件的拷贝被打印,控制风格标记
                  csReplicatable必须被设置为该状态的发生。
csCreating        框架和它的所有者发生“与”或者“或”的逻辑,并且控件
                  被创建了。这个标记将在所有的创建动作完成时被清除。
 

ControlStyle属性
对应对象:TControl
声明:TControlStyle = set of (csAcceptsControls, csCaptionMouse, csDesignInteractive, csFramed, csClickEvents, csSetCaption, csOpaque, csDoubleClicks, csFixedWidth, csFixedHeight, csNoDesignVisible, csReplicatable, csNoStdEvents, csDisplayDragImage, csReflector);
property ControlStyle: TControlStyle;
功能:ControlStyle属性用来说明激活一个控件的哪些属性。
ControlStyle属性方式被改变的次数比相应ControlState属性的标记要少。ControlStyle属性属于TControlStyle的类型,它可以是以下值的组合。

值                            意     义
csAcceptsControls             接受上面的控件。
csCaptureMouse             当这个事件发生时,控件捕获鼠标的事件。
csDesignInteractive        控件在设计时将鼠标按钮的右击映射为鼠标按钮的
                           左击来控制控件。
csClickEvents              控件可以接受并且对按击的操作进行反应。
csFramed                   控件有一个三维框架。
csSetCaption               如果标题还没有被明确地设置成为其他的内容时,
                           控件将改变它的标题以便和Name属性相匹配。
csOpaque                   控件将用户区的矩形设为透明。
csDoubleClicks             控件可以对鼠标的双击操作进行接受和反应,
                           此外可以将双击映射成为按击操作。
csFixedWidth               控件的宽度设为固定值。
csFixedHeight              控件的高度设为固定值。
csNoDesignVisible          在设计时控件是不可以变化的。
csReplicatable             控件可以通过使用PaintTo方法,从而被拷贝到任意
                          一个画面上进行绘制。
csNoStdEvents             标准事件,例如鼠标、键盘、点击事件均被忽略。
                          如果用户的代码不需要对这些事件进行反应或者希望
                          用户的应用程序运行更快时将使用这个设置来处理。
csDisplayDragImage        当鼠标被拖动到控件上面时,控件可从一个图像列表
                       中显示一个图像。使用这个设置可使控件使用一个图像的列表。
csReflector               控件将对系统对话框信息、焦点信息及尺寸改变信息
                          进行反应,如果控件被运作一个ActiveX的控件时使用
                          这个设置,可使控件接受这些事件的通知。

Cursor属性
对应对象:TControl
声明:TCursor = -32768~32767;
功能:Cursor属性用来确定当鼠标在控件上进行拖动时,将显示什么样的鼠标图形。Cursor属性属于TCursor类型变量,它包含了用户可以使用的许多标准的鼠标形式,并包含了以下的有效值:crDefault,crArrow,crNone,crCross,crIBeam,crSize,crSizeNESW,crSizeNS,crSizeNWSE,crSizeWE,crUpArrow,crHourGlass,crDrag,crNoDrop,crHSplit,crVSplit,crMultiDrag,crSQLWait,crNo,crAppStart,crHelp和crHandPoint,每个值对应的鼠标图像可以参考有关函数。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Cursor := crCross;
  Panel1.Cursor := crArrow;
end;  

DesktopFont属性
对应对象:TControl
声明:property DesktopFont: Boolean;
功能:DesktopFont属性说明当写入文本时,控件是否使用系统的桌面的字体。  

DragCursor属性
对应对象:TControl
声明:TCursor = -32768~32767;
property DragCursor: TCursor;
功能:DragCursor属性用来确定鼠标在拖动时的形式。
在DragCursor属性有效之前用户必须首先设置控件接受下拉时的对象,实际上用户只需处理一个诸如OnDragOver的拖放事件便可实现。

例子:
//Change the cursor shape if an object is dragged over the panel
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Panel1.DragCursor := crDrag;
end;  

DragMode属性
对应对象:TControl
声明:TDragMode = (dmManual, dmAutomatic);
property DragMode: TDragMode;
功能:DragMode属性用来确定控件被拖动时的行为。
DragMode属性属于TDragMode类型变量。这个类型有两个有效的值,即两个有效的拖动方式,dmAutomatic:如果dmAutomatic被选择作为拖动形式,则控件可被拖动,并且用户可以随时地点击和拖动控件。dmManual:如果dmManual被选择为其拖动的方式,直到控件调用了BeginDrag方法,控件才可以被拖动。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //...
  Form1.DragMode := dmAutomatic;
  Panel1.DragMode := dmAutomatic;
end;  

Enabled属性
对应对象:TControl
声明:property Enabled: Boolean;
功能:Enabled属性用来确定控件对鼠标、键盘及Timer事件是否将作出反应。
如果Enabled属性被设置为真,那么控件将对用户的鼠标、键盘输入及Timer事件作出反应。如果Enabled属性被设置为假,那么控件将变成灰色并且对鼠标、键盘及Timer事件不作反应。一般当控件的功能与当前状态无关时,可将该属性设置为假。  

Font属性
对应对象:TControl
声明:property Font: TFont;
功能:Font属性用来确定控件上文字的字体。
Font属性允许用户对控件的文本和标题的字体的属性,选择各种有效的字体。
字体属性包含颜色、名称、尺寸大小及风格。

例子:
with Form1.Font do
begin
  Size := 12;
  Name := 'Arial';
  Color := clGreen;
  Style := [fsBold];
end;  

Height属性
对应对象:TControl
声明:property Height: Integer;
功能:Height属性说明控件高度的尺寸大小。
Height属性以屏幕的像素作为尺寸的度量,指明控件的高度值。

例子:
procedure TForm1.FormPaint(Sender: TObject);
begin
  Panel1.Top := 10;
  Panel1.Left := 10;
  Panel1.Height := Form1.ClientHeight – 20;
  Panel1.Width := Form1.ClientWidth – 20;
end;

Hint属性
对应对象:Tcontrol
声明:property Hint:string;
功能:Hint属性用来说明当光标停止在控件上时将出现工具提示窗口内容。为了使工具能够提示所显示得文字,必须将包含了工具得窗体控件的ShowHint属性为真。如果窗体和控件的ShowHint属性被设置为真,但是没有设置控件Hint属性,那么工具将显示控件父类的Hint的文字。

IsControl属性
对应对象:TControl
声明:property lsControl:Boolean;
功能:IsControl 属性用来决定一个窗体是否存储了它的特别属性。 

Left属性  
对应对象:Tcontrol
声明:property Left:Integer;
功能:Left属性用来说明控件左边界的水平坐标。Left属性指出控件离它的容器的左边边界是多少象素,并使用屏幕坐标来度量一个窗体的Left属性值。

MouseCapture属性 
对应对象:Tcontrol
声明:property MouseCapture:Boolean;
功能:MouseCapture属性说明控件是否已经俘获了鼠标事件。 

Name属性 
对应对象:TControl
声明:TcomponentName:string;
      propertyName:TComponentName
功能:属性是控件的名,它是可作为一个控件的新名或者用来指出控件的名。 

Parent属性
对应对象:TControl
声明:property Parent:TwinControl;
功能:属性用来指出控件的父类(容器)。控件的父类是可视的,包含了控件的窗口控件。控件在它的父类被撤消时将被自动地撤消。

ParentColor属性 
相应对象:TControl
声明:property ParentColor:Boolean;
功能:ParentColor属性用来确定控件是否将使用父类的颜色值,即Color值。如果ParentColor属性设置为真,那么控件将使用它父类的Color属性的颜色。如果ParentColor属性设置为假,那么控件将使用自己确定的Color属性的颜色值。

ParentFont属性  
对应对象:TControl
声明:property ParentFont:Boolean;
功能:ParentFont属性用来确定控件是否使用父类的Font信息的属性值。如果ParentFont属性设置为真,那么控件将使用它父类的Font属性的字体。如果ParentFont属性设置为假,那么控件将使用自己确定的Font属性的字体属性值。

ParnetShowHint属性 
对应对象:TControl
声明:property ParentShowHint:Boolean;
功能:ParentShowHint用来确定控件是否使用它的父类的ShowHint属性用来显示一个工具的提示。如果ParentShowHint属性设置为真,那么控件将使用它父类的ShowHint属性,以确定此控件是否将显示一个工具提示。如果ParentShowHint属性设置为假,则控件将使用自己定义的ShowHint属性的值以确定控件是否将显示一个工具提示。

PopupMenu属性 
对应对象:TControl
声明:property PopupMenu:TpopupMenu;
功能:PopupMenu属性用来确定当用户右击控件区时,将对应地弹出哪种弹出式菜单。用户可以通过右击控件,来实现对应弹出式菜单的打开操作,用户可以通过调用弹出式菜单的Popup的方法来打开弹出式菜单。

例子:
procedure Tform1.FormCreate(Sender:Tobject);
begin
  Form1.PopupMenu:=PopupMenu1;
  //..
end;

//Exit the appllication when the Exit pop-up menu items is clicked
procedure Tform1.PopUpExitClick(Sender:Tobject);
begin
  Close;
end;

ScalingFlags属性  
对应对象:TControl
声明:TscalingFlags=set of (sfLeft,sfTop,sfWidth,sfHeight,sfFont);
      property ScalingFlags:TscalingFlags;
功能:ScalingFlags属性反应出控件的哪一个属性还没有进行尺度的计算。
ScalingFlags属性是一个内部标记的集合,首先在计算继承的窗体和控件的缩放比例时被使用。要是没有必要,应用程序将不使用这个属性。以下是标记和它们对应所表达的信息意义:

标记                    意    义
SfLeft           控件的左边没有被进行尺寸计算缩放。
SfTop            控件的顶端没有被进行尺寸计算缩放。
SfWidth          控件的宽度没有被进行尺寸计算缩放。
SfHeight         控件的高度没有被进行尺寸计算缩放。
sfFont           控件的字体没有被进行尺寸计算缩放。

ShowHint属性 
对应对象:TConcrol
声明:property ShowHint:Boolean;
功能:ShowHint属性用来确定控件是否显示一个工具提示。如果ShowHint属性被设置为真,那么当鼠标或光标停留在控件上时,将会显示出一个具有Hint属性的中文内容的工具提示。如果ShowHint属性被设置为假,同时ParentShowHint属性的值是假,那么将不显示工具的提示,但当ShowHint属性被设置为假ParentShowHint属性的值为真时,工具提示将依据其父类的ShowHint属性,如果父类的ShowHint属性是真,工具提示将显示,否则将不出现提示。ShowHint属性的缺省的值是真。

例子:
procedure Tform1.FormPaint(Sender:Tobject);
begin
  btnHideMenu.ShowHint:=True;
  btnHideMenu.Hint:='Click here to enable menus';
end; 

Text属性  
对应对象:TControl
声明:TCaption:=type string;
      property Text:Tcaption;
功能:Text属性用来确定控件中出现的用户编辑的文字内容。在运行是可以在程序中对文字进行修改,但却很少这样作。由于Caption的属性,用户是不能编辑的,所以不允许用户编辑的控件所显示的文字将是Caption的属性。

Top属性 
对应对象:TControl
声明:property Top:Integer;
功能:Top属性用来确定控件左上方的坐标值。Top属性是一个使用了容器坐标的属性。它说明控件的边界距离容器的边界有多少象素,并且窗体的Top属性以及屏幕坐标进行度量。

Visible属性  
对应对象:TControl
声明:property Visible:Boolean;
功能:Visible属性用来确定控件是否是可见。如果Visible属性为真,那么将是可见的。如果Visible属性为假,则是不可见的。

Width属性
对应对象:TControl
声明:property Width:Integer;
功能:Width属性说明了控件的宽度值。用户象素值指出控件的水平大小。用户可以在运行时修改Width属性值来改变控件的宽度。
例子:参见Height属性例子。

WindowProc属性 
对应对象:TControl
声明:TwndMethod=procedure ( var Message:Tmessage) of object;
      property WindowProc:TwndMethod;
功能:WindowProc属性包含了窗口的过程,过程是对传送给控件信息的一种反应。 

BeginDrag方法 
对应对象:TControl
声明:procedure BeginDrag(Immediate:Boolean);
功能:BeginDrag方法在控件被手工拖动时有效,BeginDrag方法用来启动一个控件的拖动过程。Immediate参数用来确定拖动操作的条件,如果Immediate参数为真,那么拖动将立即实行,同时鼠标将变为拖动设置时的形式,如果Immediate参数为假,鼠标将不改变,只是当鼠标在空间上移动了5个象素时才开始进行拖动的操作。 

BringToFront方法
对应对象:TControl
声明:procedure BringToFront;
功能:BringToFront方法用来改变控件轴的次序,并吧它放置在所有其他控件的上面。每一个窗口和非窗口的控件都有对应的Z轴次序。每个窗体上的窗口控件都在相同的Z轴次序上,每个非窗口的控件在一个独自的Z轴次序集合中。一个窗体上的所有窗口控件存在于一个Z轴次序集合中,所有的非窗口控件在另一个的Z轴次序集合中。窗口的控件总是出现在非窗口控件的上面,窗口控件下面的非窗口的控件将不能使用BringToFront方法出现在窗口控件的上面。

例子:
procedure Tform1.Button2Click(Sender:Tobject);
begin
  Button1.BringToFront;
end; 

ChangeScale方法  
对应对象:TControl
声明:procedure ChangeScale(M,D:Integer);dynamic;
功能:ChangeScale方法改变空间的大小,并依据一个指定的比例值来进行。 

Click方法
对应对象:TControl
声明:procedure Click:dynamic;
功能:Click方法调用与事件关联的控制事件的句柄。 

ClientToScreen方法
对应对象:TControl
声明:Tpoint=record
        X:Longint;
        Y:Longint;
end;
function ClientToScreen(const Point:Tpoint):Tpoint;
功能:方法将控件坐标上的一个点的坐标值转换成屏幕坐标的值。

例子:
procedure Tform1.FormCreate(Sender:Tobject);
var
  ButtonPos:Tpoint;
begin
  ButtonPos:=Button1.ClientToScreen(Point(Button1.Left,Button1.Top));
  //...
end; 

Create方法  
对应对象:TControl
声明:constructor Create(Aowner:Tcomponent);override;
功能:Create方法用来创造一个TControl的事件。 

DefaultHandler方法  
对应对象:TControl
声明://DefaultHandler provides message handling for all messages that a control does
//not have specific handlers for.
procedure DefaultHandler(var Message);override;
功能:DefaultHandler方法用来当一个控件没有指明处理时,提供了对所有信息的缺省处理。 

DoendDrag方法  
对应对象:TControl
声明:procedure DoendDrag (Target:Tobject);X,Y:Integer);dynamic;
功能:DoendDrag方法提供了对一个控件的OnendDrag事件进行保护实施的方法。 

DragCanceled方法
对应对象:TControl
声明:procedure DragCanceled;dynamic;
功能:DragCanceled方法除了提供对一个拖动进行取消反应外没有其他的操作。 

DragOver方法  
对应对象:TControl
声明:TdragState=(dsDragEnter,dsDragLeave,dsDragMove);
procedure DragOver (Source:Tobject;X,Y:Integer;State:TdragState;var
Accept:Boolean);dynamic;
功能:DragOver方法调用OnDragOver事件的句柄。设置Accept参数为真时将说明使用者可以在控件上放置被拖动的对象,当Accept参数为假时,说明用户不能在控件上放置被拖动的对象到。Source参数时被拖动的对象,以下时可能有效的State参数值。

    值                意    义
DsDragEnter          鼠标正在进入控件。
DsDragMove           鼠标在控件上移动。
dsDragLeave          鼠标离开控件。

EndDrag方法      
对应对象:TControl
声明:procedure EndDrag(Drop:Boolean);
功能:EndDrag方法将终止一个控件被进一步的拖动。如果Drop参数为真,那么可以放下控件,如果Drop参数为假,控件将不能被放下,拖动的操作将被取消。 

GetClientOrigin方法  
对应对象:TControl
声明:function GetClientOrigin:Tpoint;virtual;
功能:GetClientOrigin方法获得一个控件用户区左上角屏幕的坐标值。 

GetClientRect方法  
对应对象:TControl
声明:Trect=record
case integer of
  0: (Left,Top,Right,Botton:Integer);
  1: (TopLeft,BottonRight:Tpoint);
end;
function GetClinetRect:Trect;virtual;
功能:GetClinetRect方法返回一个矩形,以用来定义控件的用户区。

GetDeviceContext方法  
对应对象:TControl
声明:function GetDeviceContext( var WindowHandle:HWnd):Hdc;virtual;
功能:GetDeviceContext方法返回一个设备的上下文。 

GetDragImages方法  
对应对象:TControl
声明:function GetDragImages:TcustomImageList;virtual;
功能:GetDragImages方法返回控件的图象列表,列表中包含了当拖动时被显示的图像。 

GetPalette方法  
对应对象:TControl
声明:funciton GetPalette:HPALETTE;dynamic;
功能:GetPalette方法返回一个调色板的句柄,它被控件所使用。 

GetParentComponent方法  
对应对象:TControl
声明:funciton GetParentComponent:Tcomponent;override;
功能:GetParentComponent方法返回控件父类的组件。 

GetPopupMenu方法  
对应对象:TControl
声明:function GetPopupMenu:TpopupMenu;dynamic;
功能:GetPopupMenu方法获得一个控件的弹出式菜单。 

GetTextBuf方法
对应对象:TControl
声明:function GetTextBuf ( Buffer:Pchar;BufSize:Integer):Integer;
功能:GetTextBuf方法用来获得控件所包含的文字,并且将文字拷贝到一个缓冲区中。GetTextBuf方法从控件中获得文字,并把它作为一个以空字符结束的字符串拷贝到Buffer指定的缓冲区内。BufSize参数用来说明缓冲区的大小,在调用GetTextBuf方法之前使用GetTextLen方法进行设置。文字作为一个以空字符结尾的字符串被拷贝到缓冲区中。

例子:
procedure Tform1.Button2Click(Sender:Tobject);
var
  MyBuffer:Pchar;
  MyBufSize:Integer;
begin
  MyBufSize:=Button1.GetTextLen;
  Button1.GetTextBuf(MyBuffer,MyBufSize);
  StatusBar1.SetTextBuf(MyBuffer);
end; 

GetTextLen方法
对应对象:TControl
声明:function GetTextLen:Integer;
功能:GetTextLen方法用来检索控件文字的大小。GetTextLen方法一般在调用GetTextBuf方法之前使用,以便确定缓冲区的大小。使用GetTextLen方法可以代替字符串的处理函数。

例子:
procedure Tform1.Button2Click(Sender:Tobject);
var
  MyBuffer:Pchar;
  MyBufSize:Integer;
begin
  MyBufSize:=Button1.GetTextLen;
  Button1.GetTextBuf(MyBuffer,MyBufSize);
  StatusBar1.SetTextBuf(MyBuffer);
end; 

HasParent方法  
对应对象:TControl
声明:function HasParent:Boolean;override;
功能:HasParent方法用来说明控件是否有一个父类。 

Hide方法  
对应对象:TControl
声明:procedure Hide;
功能:Hide方法使一个控件变为不可视的。在Hide方法把控件的Visible属性设置为假      时,可使控件变的不可件的。
例子:
//If the “Hide menus” menu item is clicked,hide the forms menus but make the
//”show menu” button visible so the user can turn the menu on again if necessary
procedure Tform1.menuHideMenu1Click(Sender:Tobject);
begin
  BtnHideMenu.Hide;
  Form1.Menu:=nil;
end;
// If the “Show menu” button is clicked,hide the button and show the form's mainmenu
procedure Tform1.btnShowMenuClick(Sender:Tobject);
begin
  From1.Menu:=MainMenu1;
  BtnHideMenu.Hide;
end; 

Invalildate方法  
对应对象:TControl
声明:procedure Invalidate;virtual;
功能:Invalidate方法使控件对本身进行再次绘制。在调用Invalidate方法时应该尽快地重新绘制控件,Invalidate方法有Refresh调用。

例子:
procedure Tform1.Button1Click(Sender:Tobject);
begin
  //Invalidate the form so that it can be repainted
  Form1.Intevalidate;
  Form1.Canvas.Repaint;
end; 

MouseDown方法  
对应对象:TControl
声明:TMouseButton=(mbleft,mbRight,mbMiddle);
TShiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
procedure MouseDown (Button:TmouseButton;Shift:TshiftState;X,Y:Integer);
   Dynamic;
功能:MouseDown方法调用OnMouseDown事件的句柄。 

MouseMove方法
对应对象:TControl
声明:TShiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
      procedure MouseMove(Shift:TshiftState;X,Y:Integer);dynamic;
功能:MouseMove方法调用连接到OnMouseMove事件的句柄。

MouseUp方法
对应对象:TControl
声明:TMouseButton=(mbLeft,mbRight,mbMiddle);
TShiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
procedure MouseUp(Button:TmouseButton;Shift:TshiftState;X,Y:Integer); Dynamic;
功能:MouseUp方法调用了OnMouseUp事件的句柄。

Notification方法
对应对象:TControl
声明:TOperation=(opInsert,opRemove);
procedure Notification(Acomponent:Tcomponent;Operation:Toperation);override;
功能:当弹出式菜单的参考被破坏时Notification方法允许Tcontrol更新它的弹出式菜单的属性。

PaletteChanged方法
对应对象:TControl
声明:function PaletteChanged(Foreground:Boolean):Boolean;dynamic;
功能:PaletteChanged方法对系统调色板的改变进行反应,它重新设置控件调色板的大小。  

Perform方法
对应对象:TControl
声明:function Perform(Msg:Cardinal;WParam,Lparam:Longint):Longint;
功能:Perform方法当控件接受指定的系统信息时反应。  

Refresh方法
对应对象:TControl
声明:procedure Refresh;
功能:Refresh方法用来删除控件中的图像并且重新绘制控件。 Refresh方法使用了InValidate和Update以刷新控件。如果用户的显示部分和其它的分布相混合,可以使用该方法进行更新。
例子: 
procedure Tform1.mnuRefreshClick(Sender:Tobject); 
begin 
  Form1.Refresh; 
end;

Repaint方法
对应对象:TControl
声明:procedure Repaint;
功能:Repaint方法使控件对自已进行重新绘制。Repaint方法和Refresh方法一样,只是这个方法不先删除控件的图像。如果用户希望首先删除控件之后再绘制它,可以使用Refresh方法。  

ScreenToClient方法
对应对象:TControl
声明:TPoint=record
         X:Longint;
         Y:Longint;
end;
function ScreenToClient(const Point:Tpoint):Tpoint;
功能:ScreenToClient方法将屏幕的坐标值转换成为控件的坐标值,ScreenToClient方法可以和屏幕到用户区的方法一起使用,以便将应该控件的坐标转换成为另一个控件的坐标值。  

SendCancelMode方法
对应对象:TControl
声明:procedure SendCancelMode(Sender:Tcontrol);
功能:SendCancelMode方法取消了控件的模式状态。

SendToBack方法
对应对象:TControl
声明:procedure SendToBack;
功能:SendToBack方法将控件放置到容器中的所有其它控件的下面。窗口和非窗口控件有不同的Z轴的次序集合。一个窗体上的每一个窗口都在一个相同的Z轴的次序集合中,窗口控件总是出现在非窗口控件的上面,所以使用SendToBack方法将不能使一个非窗口控件上面的窗口控件放置到它的下面。
例子:
//Send the button behind the Panel
procedure Tform1.Button1Click(Sender:Tobject);
begin
  Button1.SendToBack;
end;  

SetBounds方法
对应对象:TControl
声明:procedure SetBounds(Aleft,Atop,Awidth,Aheight:Integer);virtual;
功能:SetBounds方法用来设置控件的Left,Top,Width和Height属性。SetBounds方法使用用户可以在一次中设置控件边界的所有属性。这样可以使控件在一次重新绘制时就完成最后的效果,然而,一般的单独调用将使控件进行多次的重新绘制。
例子:
//Have the panel resize with the form 
procedure Tform1.FormResize(Sender:Tobject); 
begin 
  Panel1.SetBounds(10,10,Form1.ClientWidth-20,Form1.ClientHeight-20);
end;

SetDragMode方法
对应对象:TControl
声明:TDragMode=(dmManual,dmAutomatic);
      procedure SetDragMode(Value:TdragMode);virtual;
功能:SetDragMode方法为控件设置了拖动的模式。  

SetName方法
对应对象:TControl
声明:TComponentName=type string;
      procedure SetName(const Value:TcomponentName);override;
功能:SetName方法设置了控件的名。  

SetParent方法
对应对象:TControl
声明:procedure SetParent(Aparent:TwinControl);virtual;
功能:SetParent方法使控件可以设置它的父类。  

SetTextBuf方法
对应对象:TControl
声明:procedure SetTextBuf(Buffer:Pchar);
功能:SetTextBuf方法使一个缓冲区中的文字拷贝到一个控件中。
   Buffer是一个指向以空字符结束的字符串。
例子:
procedure Tform1.Button2Click(Sender:TObject); 
var MyBuffer:Pchar; 
  MyBufSize:Integer; 
begin 
  MyBufSize:=Button1.GetTextLen; 
  Button1.GetTextBuf(MyBuffer,MyBufSize); 
  StatusBar1.SetTextBuf(MyBuffer);
end;

SetZOrder方法
对应对象:TControl
声明:procedure SetZOrder(TopMost:Boolean);dynamic;
声明:TRect=record
      case Integer of
        0:(Left,Top,Right,Bottom:Integer);
        1:(TopLeft,BottomRight:Tpoint);
      end;
      procedure UpdateBoundsRect(const R:Trect);
功能:UpdateBoundsRect方法改变控件的Top,Left,Width和Height属性,但是没有更新控件的屏幕图像。

OnClick事件
对应对象:Tcontrol
声明:TNotifyEvent=procedure(Sender:Tobject) of object;
      property:TNotifyEvent;
功能:OnClick事件在鼠标指针点击控件时发生。
   当用户使用鼠标在控件上时点击鼠标按钮激发一个控件,或用户通过其它的操作触发OnClick事件。这个事件是应用程序使用最多的一个事件。用户可以为OnClick事件的处理程序设置为运行的过程,也可以在设计时,在大小探测器中为一个控件选择Onlick事件来完成操作。

OnDblClick事件
对应对象:Tcontrol
声明:TnotifyEvent=procedure(Sender:Tobject) of object;
property OnDblClick:TnotifyEvent;
功能:OnDblClick事件当用户双击控件时发生。在用户在一个控件上双击鼠标时将引发OnDblClick事件。用户可以为一个OnDblClick事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDblClick事件来完成操作。

OnDragDrop事件
对应对象:Tcontrol
声明:TDragDropEvent=procedure(Sender,Source:Tobject;X,Y:Integer) of object;
property OnDragDrop:TdragDropEvent;
功能:OnDragDrop事件当一个被拖动的对象被放置到控件上时发生。Sender参数说明了将被放置对象的控件的标识符。Source参数说明了被拖动放置的对象。坐标参数说明了对象被放置到控件的位置。用户可以为一个OnDragDrop事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDragDrop事件来完成操作。
例子:
type 
  Tform1=class(Tform) 
    Panel1:Tpanel; 
    Image1:Timage; 
    procedure MyDragDrop(Sender,Source:Tobject;X,Y:Integer); 
    procedure MyDragOver(Sender,Source:Tobject;X,Y:Integer;State:TdragState;var   Accept:Boolean); 
  Private 
    {Private declarations} 
  Public 
    {Public declarations} 
  end; 

var 
  Form1:Tform1; 

Implementation 

{$R *.DFM} 

procedure Tform1.MyDragDrop(Sender,Source:Tobject;X,Y:Integer); 
begin 
  if Soruce is Timage then 
  begin 
    TImage(Source).Parent:=Panel1; 
    TImage(Source).Left:=X; 
    Timage(Source).Top:=Y; 
  end; 
end; 

procedure Tform1.MyDragOver(Sender,Source:Tobject;X,Y:Ingeger;State:TdragState; var Accept:Boolean); 
begin 
  if Soruce is Timage then
  begin 
    Timage(Source).DragCursor:=crCross;
    Accept:=True; 
  end;
end;

procedure Tform1.FormCreate(Sender:Tobject);
begin
  Panel1.OnDragDrop:=Form1.MyDragDrop;
  Panel1.OnDragOver:=Form1.MyDragOver;
end;

OnDragOver事件
对应对象:Tcontrol
声明:TdragState=(dsDragEnter,dsDragLeave,dsDragMove);
     TdragOverEvent=procedure(Sender,Source:Tobject;X,Y:Integer;State:TdragState;var:Boolean) of object;
功能:OnDragOver事件在一个控件上拖动对象时发生。
   当用户在控件上拖动一个对象时,OnDragOver事件将发生。Sender说明了控件的标识符。Soruce参数说明被拖动的对象。坐标参数说明了被拖动对象在控件坐标上的位置。Accept参数说明了控件是否允许被拖动的对象放置在它的上面。如果Accept参数被设置为真,那么将使控件接受对象的放置。否则不接受。用户可以为一个OnDragOver事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDragOver事件来完成操作。
例子:参见OnDragDrop事件的例子。  

OnEndDrag事件
对应对象:Tcontrol
声明:TEndDragEvent=procedure(Sender,Target:Tobject;X,Y:Integer) of object;
      property OnEndDrag:TendDragEvent;
功能:OnEndDrag事件在一个拖动的操作停止时发生。
   当控件接受一个被拖动的对象,或者用户取消了拖动操作时,用户可取消拖动操作。Sender参数是被拖动的对象。Target是鼠标对应的控件,当一个拖动的操作停止时,它将变为被拖动的对象。坐标是使用Target控件的坐标用来说明被拖动的对象在当前的位置。用户可以为一个OnEndDrag事件的处理程序设置一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnEndDrag事件来完成操作。

例子: 
type 
  Tform1=class(Tform) 
    Panel1:Tpanel; 
    Image1:Timage; 
    procedure MyEndDrag(Sender,Target:Tobject;X,Y:Integer); 
  private 
    {Private declarations} 
  public 
    {Public declarations} 
  end; 

var 
  Form1:tForm1; 

Implementation 

{$R *.DFM}

procedure Tform1.FormCreate(Sender:Tobject); 
begin 
  Image1.OnendDrag:=Form1.MyendDrag; 
end;

procedure Tform1.MyEndDrag(Sender,Target:Tobject;X,Y:Integer); 
begin 
  If Target is Tpanel then 
    StatusBar1.Panels[1].text:='Drag ended on panel.' 
  else 
    Statusbar1.panels[1].text:='Drag did not end on panel.'; 
end;

OnMouseDown事件
对应对象:TControl
声明:TMouseButton=(mbLeft,mbRight,mbMiddle);
      TShiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
      TMouseEvent=procedure(Sender:TObject;Button:TMouseButton;Shift:TShiftState e;X,Y:Integer) of object;
     Property OnMouseDown:TMouseEvent;
功能:OnMouseDown事件当在控件上点击鼠标时激发。
   Sender参数用来说明鼠标点击时,鼠标下面的那一个控件。Button参数说明了使用哪一个鼠标的按钮,此变量是属于TMouseButton类型,有效时为mbLeft,mbRight和mbMiddle。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意的组合,如果没有使用修正键,那么Shift将被设置成为[].坐标的参数使用了Sender控件坐标以指出点击时鼠标的位置。用户可以为一个OnMouseDown事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseDown事件来完成操作。

例子: 
type 
  TForm1=class(TForm) 
    procedure MyMouseDown(Sender:TObject;Button:TMouseButton:Shift;TShiftState;X,Y:Integer); 
  Private 
    {Private declarations} 
  public 
    {public declarations} 
  end; 

var 
  Form1:TForm1; 

implementation 

{$R *.DFM}

procedure TForm1.FormCreate(Sender:TObject); 
begin 
   Form1.MyMouseDown:=Form1.MyMouseDown; 
end;

procedure TForm1.MyMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); 
Begin 
  StatusBar1.Panels[0].Text:='MouseDown on Form:'+IntToStr(X)+','+IntToStr(Y); 
end;  

OnMouseMove事件
对应对象:TControl
声明:TShiftState=set of(ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
      TMouseMoveEvent=procedre(Sender:TObject;Shift:TShiftState;X,Y:Integer) of object;
      Property OnMouseMove:TMouseMoveEvent;
功能:OnMouseMove事件当鼠标指针在控件上移动时发生。
   当鼠标指针通过每一个控件时,将连续地发生OnMouseMove事件。这个事件的发生将不需要鼠标的点击。Sender参数说明了发生事件的控件。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意的组合,如果没有使用修正键那么Shift将被设置成为[].在事件发生时坐标参数将使用控件的坐标系来说明鼠标的位置。用户可以为一个OnMouseMove事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseMove事件来完成操作。

例子: 
type 
  TForm1=class(TForm) 
    StatusBar1:TstatusBar; 
    procedure MyMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer); 
  private 
    {private declarations} 
  public 
    {public declarations} 
  end;

var 
  Form1:TForm1; 

implementation 

{$R *.DFM}

procedure TForm1.FormCreate(Sender:TObject); 
begin 
  Form1.OnMouseMove:=Form1.MyMouseMove; 
end;

procedure Tfrom1.MyMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer); 
begin 
  StatusBar1.Panels[2].Text:='MouseMove on Form:'+IntToStr(X)+','+IntToStr(Y); 
end;

OnMouseUp事件
对应对象:TControl
声明:TMouseButton=(mbLeft,mbRight,mbMiddle);
      TShiftState=set of(ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
      TMouseEvent=procedure(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer) of object;
      Property OnMouseUp:TMouseEvent;
功能:OnMouseUp事件当用户点击一个鼠标的按钮时发生。在任何时候用户点击了按钮时,这个事件总是会发生。它说明了用户点击了哪一个按钮,在用户释放按钮时指明按钮指针的位置。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意组合,如果没有使用修正键那么Shift将被设置成为[]。Button参数说明了是用户释放的是哪一个按钮,它可以是mbLeft,mbRight,mbMiddle三个值:左按钮、右按钮、中间按钮。坐标参数说明了在释放鼠标按钮时,鼠标指针在控件坐标中的位置。用户可以为一个OnMouseUp事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseUp事件来完成操作。

例子:
type 
  TForm1=class(TForm) 
    procedure MyMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); 
  private 
    {private declarations} 
  public 
    {public declarations} 
  end;

var 
  Form1:TForm1; 
  implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender:TObject); 
begin 
  Form1.OnMouseUp:=Form1.MyMouseUp; 
end;

procedure TForm1.MymouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); 
begin 
  StatusBar1.Panels[0].Text:='MouseUp on Form:'+IntToStr(X)+','+IntToStr(Y); 
end;  

OnStarTDrag事件
对应对象:TControl
声明:TStarTDragEvent=procedure (Sender:TObject;var DragObject:TDragObject) of object;
      property OnStarTDrag:TStarTDragEvent;
功能:OnStarTDrag事件在控件释放操作发生时点发生。当用户在一个控件上放置鼠标并且点击了按钮以便对控件进行拖动时,OnStarTDrag事件将被触发。DragObject参数说明了被拖动的目标。用户可以为一个OnStarTDrag事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnStarTDrag事件来完成操作。

例子: 
type 
  TForm1=class(TForm) 
    StatusBar1:Tstatusbar; 
    procedure MyStarTDrag(Sender:TObject;var DragObject:TDragObject); 
  private 
    {private decalrations} 
  public 
    {public declarations} 
  end; 

var 
  Form1:TForm1; 

implementation 

{$R *.DFM}

procedure TForm1.FormCreate(Sender:TObject); 
begin 
  Image1.OnStarTDrag:=Form1.MyStarTDrag; 
end; 

procedure TForm1.MyStarTDrag(Sender:TObject;var DragObject:TDragObject); 
begin 
  StatusBar1.Panels[1].Text:='Drag Started.';
end;

五、TScreen

TObject—>TPersistent—>Tcomponent

TScreen的属性:                             从TComponent继承来的:
In TScreen                                  DestroyComponents
    ActiveControl                           FindComponent
    ActiveCustomForm                        FreeNotification
    ActiveForm                              FreeOnRelease
    Cursor                                  GetParentComponent
    Cursors                                 HasParent
    CustomFormCount                         InsertComponent
    CustomForms                             RemoveComponent
    DataModuleCount                         SafeCallExecption 
    DataModeles                             从TPersistent继承来的:
    DefaultIme                              Assign     
    DefaultKbLayout                         GetNamePath 
    Fonts                                   从TObject继承来的:
    FormCount                               ClassInfo
    Forms                                   ClassName
    Height                                  ClassNameIs
    IconFont                                ClassParent
    Imes                                    ClassType
    PixelsPerInch                           CleanupInstance
    Width                                   DefaultHandler
从Tcomponent继承来的:                      Dispatch
        ComObject                           FieldAddress   
        ComponentCount                      Free    
        ComponentIndex                      FreeInstance   
        Components                          GetInterface   
        ComponentState                      GetInterfaceEntry    
        ComponentStyle                      GetInterfaceTable    
        DesignInfo                          InheritsFrom 
        Name                                InitInstance 
        Owner                               InstanceSize   
        Tag                                 MethodAddress      
        VCLComObject                        MethodName       
                                            NewInstance
TScreen的方法                               TScreen的事件:
In TScreen                                  In TScreen
   Create                                   OnActiveControlChange   
   Destroy                                  OnActiveFormChange

ActiveControl属性
对应对象:TScreen
声明:property ActiveControl :TWinControl;
功能:ActiveControl属性用来确定有焦点的控件。
在任何时候,整个屏幕上只有一个控件有焦点。如果控件在应用程序的外面,则用户不能访问它。一般ActiveControl被限制在应用程序的内部。

例子:
//Create a form with many controls,change the Interval property
//of the Timer to 500-every time a control is selected,the Form
//Caption changes to indicate which control has the foucus
procedure TForml.TimerlTimer(Sender:TObject);
begin
  Form1.Caption := Screen.ActiveControl.Name;
end; 

ActiveForm属性  
对应对象:TScreen
声明:property ActiveForm :TForm;
功能:ActiveForm属性用来确定被激活的窗体是哪一个窗体。这个属性是只读型的。它指出具有焦点的窗体。

例子:
//Create a program with  two forms-Show Form2 by
//clicking a button on the first form. This method will
//put the name of the active form on Form2's caption
procedure TForm2.Timer1Timer(Sender : TObject);
begin
  Form2.Caption := Screen.ActiveForm.Name;
end; 

Cursor属性  
对应对象:TScreen
声明:  property Cursor:TCursor;
功能:Cursor属性用来确定光标的形状。
      改变Cursor属性的值将对应地改变应用程序中用户区域的光标形状。
      以下说明使用的TCursor类型时的可能值: 

类型常数              值             功  能
crDefautl             0           依据ActiveControl。
crNone                -1             无光标。
crArrow               -2            标准光标。
crCross               -3            十字光标。
crIBeam               -4            I形光标。
crSize                -5          十字箭头光标。
crSizeNESW            -6         右斜方箭头光标。
crSizeNS              -7         上下方箭头光标。
crSizeNWSE            -8         左斜方箭头光标。
crSizeWE              -9         左右箭头光标。
crUpArrow             -10        向上箭头光标。
crHourGlass           -11         等待光标。
crDrag                -12        箭头加文本光标。
crNoDrop              -13   
crHSPlit              -14        左右移动表格线光标。
crVSplit              -15        上下移动表格线光标。
crMultiDrag           -16        箭头加多文本光标。
crSQLWait             -17        SQL加等待光标。
crNo                  -18   
crAppStart            -19        等待加箭头光标。
crHelp                -20        箭头加问号光标。
crHandPoint           -21        手光标。

例子:
procedure TForm1.FormCreate(Sender : TObject);
begin
  Screen.Cursor := crUpArrow;
end; 

Cursors属性  
对应对象:TScreen
声明:property Cursors [Index:Integer] : HCursor;
功能:Cursors属性是用户可以使用的光标数组。
Cursors属性允许用户在应用程序中加载自定义的光标,全局光标的预定义集由TCursor来定义。前面介绍的Cursor属性中说明了TCursor类的光标元素。如果用户希望创建自己的光标,可以使用Delphi的图形编辑器来绘制光标,并且在源代码中说明一个常量来表示光标在Cursors数组中的位置,使用系统的API函数比LoadCursor以便使这个光标成为程序共享的资源。例如,设想一个用户定制的光标已经被加载到应用程序的资源中去,并且命名为NewCursor。以下的代码使这个光标在应用程序中是有效的,通过光标常数crMyCursor,并设置它是全局的。

例子:
implementation

{$R *.DFM}

const
  crMyCursor = 5;
procedure TForm1.FormCreate(Sender : TObject);
begin
  Screen.Cursors[crMyCursor] := LoadCursor(HInstance, 'NewCursor');
  Cursor := crMyCursor;
end; 

CustomFormCount属性  
对应对象:TScreen
声明:property CustomFormCount : Integer;
功能:CustomFormCount说明了在屏幕上所显示的窗体号或属性页。 

CustomForms属性  
对应对象:TScreen
声明:property CustomForms [Index :Integer]:TCustomForm;
功能:CustomForms是一个所有的属性页和窗体的例表,它们是在当前的屏幕上显示。 

DataModuleCount属性  
对应对象:TScreen
声明:property DataModuleCount:Integer;
功能:DataModuleCount属性说明了在当前的应用程序中例示的数据模块的号。 

DataModules属性  
对应对象:TScreen
声明:property DataModules [Index:Integer]:TDataModule;
功能:DataModules是在当前应用程序中例示的所有数据模块的例表数组。 

DefaultIme属性  
对应对象:TScreen
声明:property DefaultIme:string;
功能:DefaultIme属性说明了输入方法编辑器的名,输入方法编辑器在TScreen对象被创建时被激活。 

DefauItKbLayout属性  
对应对象:TScreen
声明:property DefaultKbLayout:HKL;
功能:DefauItKbLayout属性是当应用程序开始运行时被激活的键盘版面所对应的窗口句柄。 

Fonts属性  
对应对象:TScreen
声明:property Fonts:TStrings;
功能:Fonts属性说明了包含在应用程序中可用的字体例表。Fonts属性是只读型的,它包含了屏幕支持的字体例表,应用程序可用访问。用户可以使用Fonts属性来确定某种字体是否可以被使用,进而确定所使用的字体。

例子:
//Display all of the available fonts
procedure TForm1.FormCreate(Sender : TObject);
begin
  ListBox1.Sorted := True;
  ListBox1.Items := Screen.Fonts;
end;

FormCount属性  
对应对象:TScreen
声明:property FormCount:Integer;
功能:FormCount属性包含了应用程序中屏幕上可以看到的窗体数目。它是只读型的。

例子:
//Get form count
procedure TForm1.Button1Click(Sender : TObject);
begin
  Label1.Caption := 'There is/are' + IntToStr(Screen.FormCount) + 'form(s) on the screen.';
end; 

Forms属性  
对应对象:TScreen
声明:property Forms[Index:Integer] : TFonn;
功能:Forms属性对应了显示的窗体数组。在应用程序中的每一个窗体所对应的Forms数组中都给了一个确定的位置。程序创建的第一个窗体是Forms[0],第二个窗体是Forms[1],依此类推。Forms允许用户通过Index值访问应用程序的每—个窗体。

例子:
当按钮1被按击时,以下的代码加载了在屏幕上的所有的窗体名到ListBoxl上。
procedure TForm1.Button1Click(Sender : TObject);
var
  I : integer;
begin
  for I := 0 to Screen.FormCount - 1 do
    ListBox1.Items.Add(Screen.Forms[I].Name);
end; 

Height属性  
对应对象:TScreen
声明:property Height : Integer;
功能:Height属性包含有屏幕的高度。
Height属性是只读型的,包含有屏幕的垂直高度尺寸,并以象素来计数。

例子:
procedure TfrmScreenInfo.FormCreate(Sender : TObject);
begin
  lblWidth.Caption := IntToStr(Screen.Width);
  lblHeight.Caption := IntToStr(Screen.Height);
  lblPixelsPerInch.Caption := IntToStr(Screen.PixelsPerInch);
end; 

IconFont属性  
对应对象:TScreen
声明:property IconFont : TFone;
功能:IconFont属性是说明了在文件选择对话框中,显示在图标上的标签的字体形式。 

Imes属性  
对应对象:TScreen
声明:property Imes : TStrings;
功能:Imes属性说明了在系统上安装的所有输入方法编辑器的例表。 

Width属性  
对应对象:TScreen
声明:property Width:Integer;
功能:Width属性说明了屏幕的宽度。这个属性是只读型的,包含有屏幕的水平尺寸,以象素来计数。
示例:
     with Screen do
       for I := 0 to FormCount – 1 do
         if Forms[I].Width > Width then Forms[I].Width := Width; 

Create方法  
对应对象:TScreen
声明:constructor Create(AOwner:TComponent);override;
功能:Create方法用来创建一个TScreen对象的实例。 

Destroy方法  
对应对象:TScreen
声明:destructor Destroy;override;
功能:Destroy方法用来消除一个TScreen对象的实例。 

OnActiveControlChange事件  
对应对象:TScreen
声明:TNotifyEvent = procedure(Sender :TObject)of object;
      property OnActiveControlChange:TNotifyEvent;
功能:当屏幕的焦点从一个控件转换到另一个控件时发生OnActiveControlChange事件。如果每一次焦点的转换事件发生时用户希望应用程序处理一些操作的话,可以对OnActiveControlChange事件创建一个事件的处理代码来完成。当OnActiveCon-trolChange事件发生时,屏幕的激活控制属性的值将成为将要接收焦点的控件的属性值。

例子:
unit Unit1;

interface 

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

type
  TForm1 = class(TForm)
    RadioGroup1 : TRadioGroup;
    RadioButton1 : TRadioButton;
    RadioButton2 : TRadioButton;
    RadioButton3 : TRadioButton;
    CheckBox1 : TCheckBox;
    CheckBox2 : TCheckBox;
    Button1 : TButton;
    Button2 : TButton;
    procedure FormCreate(Sender : TObject);
  private
    {Private declarations}
  public
    //Manually added method declaration
    procedure FocusChanged(Sender : TObject);
  end;

var
  Form1 : TForm1;

implementation

{$R *.DFM}

//Create an event handler for OnActiveControlChange
procedure TForm1.FormCreate(Sender : TObject);
begin
  Screen.OnActiveControlChange := FocusChanged;
end;

//Respond to OnActiveControlChange events
procedure TForm1.FocusChanged(Sender : TObject);
begin
  if Screen.ActiveControl = Button2 then
  Button1.Enabled := False;
  else Button1.Enabled := True;
end;

end. 

OnActiveFormChange事件  
对应对象:TScreen
声明:TNotifyEvent = procedure(Sender:TObject) of object;
      property OnActiveFormChange:TNotifyEvent;
功能:在激活的窗体被改变之前OnActiveFormChange事件发生。用户可以为OnActiveFormChange事件创建一个认为代码来实现在窗体改变之前希望完成的操作。

例子:
unit Unit1;

interface  

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

type
  TForm1 = class(TForm)
    RadioGroup1 : TRadioGroup;
    RadioButton1 : TRadioButton;
    RadioButton2 : TRadioButton;
    RadioButton3 : TRadioButton;
    CheckBox1 : TCheckBox;
    CheckBox2 : TCheckBox;
    Button1 : TButton;
    Button2 : TButton;
    Label1 : TLabel;
    procedure FormCreate(Sender : TObject);
    procedure Button1Click(Sender : TObject);
  private
    {Private declarations}
  public
    //Manually added method declaration
    procedure FormChanged(Sender : TObject);
  end;

var
  Form1 : TForm1;

implementation

uses Unit2;

{$R *.DFM}

//Create an event handler for OnActiveFormChange
procedure TForm1.FormCreate(Sender : TObject);
begin
  Screen.OnActiveFormChange := FormChanged;
end;

//Handle the OnActiveFormChange event
procedure TForm1.FocusChanged(Sender : TObject);
begin
  Label1.Caption := 'Active Form is' + Screen.ActiveForm.Name;
end;

//Show Form2 when the button is pressed
procedure TForm1.Button1Click(Sender : TObject);
begin
  Form2.Show;
end;

end.

六、TColorDialog

TCommonDialog--TColorDialog

Color属性
对应对象:TColorDialog
声明:property Color:TColor default clBlack;
功能:Color属性用来确定在颜色对话框中选择哪一个颜色。当用户选择了一个新的颜色时,Color属性将被设置为新颜色的值。

例子:
//Change the color of the selected text when the user choose a
//color from the Color dialog box
procedure TForm1.sbColorClick(Sender: TObject);
begin
  Colordialog1.Execute;
  RichEdit1.SelAttributes.Color:=Colordialog1.Color;
end;

CustomColors属性
对应对象:TColorDialog
声明:property CustomColors:TStrings;
功能:CustomColors属性确定在颜色对话框中可以获得的一种自定义的颜色。CustomColors属性保存了一个字符串的列表,每一个字符串的格式是:ColorX=HexValue,其中ColorX是16个自定义的颜色中的一个,是从ColorA到ColorP,HexValue参数是一个十六进制的数值,它说明了构成颜色的所对应的RGB值。所以,对应于纯白色这个值是FFFFFF,000000是纯黑,使用Color0=000000说明了把纯黑色传递给颜色选择。当颜色对话框被关闭时,保存了对话框颜色的列表,以便用户可以在下一次使用对话框时使用自定义颜色。

例子:
procedure TForm1.sbColorClick(Sender: TObject);
var
  X:Integer;
begin
  Colordialog1.CustomColers:= StrCustomColors;
  Colordialog1.Execute;
  RichEdit1.SelAttributes.Color:=Colordialog1.Color;
  StrCustomColors:=Colordialog1.CustomColors;
  //Save StrCustomColors to the registry or an INI file
  //when the program exits…
end;

Options属性
对应对象:TColorDialog
声明: TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp, cdSolidColor,
 cdAnyColor);
  TColorDialogOptions = set of TColorDialogOption;
property Options: TcolorDialogOptions  default[];
功能:Options属性说明了颜色对话框的显示形式和选项。
 以下列举了有效的选项值。

值                              意  义
 
cdFullOpen         当颜色对话框被打开时显示了定制颜色的选项。
cdPreventFullOpen  使在对话框中的定义定制的颜色成为不可用,所以便用者不能定义新的颜色。
cdShowHelp         在对话框之中添加一个帮助按钮。
cdSolidColor       指引系统使用最近的纯颜色的选择。
cdAnyColor         允许使用者选择非纯的颜色(可以被近似的抖动)

缺省时所有的选项是被关闭的。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ColorDialog1.Options:=[cdFullOpen, cdShowHelp];
end;

OnClose事件
对应对象:TColorDialog
声明:property OnClose:TNotifyEvent;
功能:当一个对话框被关闭时,OnClose事件被引发。当对话框关闭时写入一个OnClose事件的句柄来完成指定的操作

0 0
原创粉丝点击