说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi 5快速创建控制面板程序

HTML文档下载 WORD文档下载 PDF文档下载
Delphi 5快速创建控制面板程序

---- Borland Delphi是深受广大软件开发人员喜爱的一种高效、快速的RAD(Rapid Application Development)开发工具。在1999年秋季发布的Delphi 5中,Delphi又引入了许多新的特色。其中之一便是Delphi 5的Enterprise和Professional版本中新增了用于快速创建控制面板(CPL)程序的向导和类,这使得我们能够在可视化开发环境中非常方便地建立控制面板应用程序。

---- 一、关于控制面板程序

---- 在Windows中,用户通过控制面板来进行增删程序、添加硬件、设置各种系统属性等操作。控制面板中所显示的小程序(或称之为对话框)是由控制面板程序(Control Panel Application)提供的。Windows本身附带了十来个控制面板应用程序,它们都位于Windows的System目录下,扩展名为*.CPL。每个控制面板中的应用程序可以有一个或多个对话框,每个对话框在控制面板中用一个图标代表。

---- 控制面板应用程序实质上是一类特殊的动态链接库,每个控制面板程序必须输出一个CPlApplet函数,它是控制面板应用程序的入口,其主要作用是处理Windows消息。CPlApplet函数的原型为:

function CPlApplet(

hwndCPl: THandle; //Identifies the main

window of the controlling application.

uMsg: DWORD; // Specifies the message

being sent to the Control Panel application

lParam1

lParam2: Longint // Specify

additional message-specific information

): Longint; stdcall;

---- CplApplet函数是控制面板与控制面板应用程序通讯的唯一方式。一个控制面板程序中的CplApplet函数的基本框架结构如下:

function CPlApplet(hwndCPl: THandle; uMsg: DWORD;

lParam1

lParam2: Longint): Longint;

begin

//…

case (uMsg) of

CPL_INIT: begin {…} end;

CPL_GETCOUNT: begin {…} end;

CPL_INQUIRE: begin {…} end;

CPL_NEWINQUIRE: begin {…} end;

CPL_DBLCLK: begin {…} end;

CPL_STOP: begin {…} end;

CPL_EXIT: begin {…} end;

CPL_STARTWPARMS: begin {…} end;

CPL_SETUP: begin {…} end;

end;

//函数的返回值取决于uMsg

end;

---- 事实上,编写控制面板程序的主要任务都放在处理这些CPL_消息上,关于这些消息的含义,请参看Delphi 5所带的帮助文档Win32.hlp。

---- 为了简化控制面板程序的创建,Delphi 5新增了一个可视化构件库CtlPanel.PAS。CtlPanel单元中定义了TAppletApplication(控制面板应用程序类)和TAppletModule类.

---- 使用TAppletApplication和TAppletModule类构造控制面板应用程序是一件非常轻松的事情。下面我来介绍一下在Delphi 5中创建控制面板程序的基本步骤。

---- 二、Delphi 5中建立控制面板程序

---- 第一步:选择File | New菜单,在New Items对话框的New页上选择Control Panel Application,Delphi将创建一个新的控制面板应用程序(其中已经包含一个applet)。Delphi向导创建的工程文件如下:

library Project1;

uses

CtlPanel

Unit1 in 'Unit1.pas'

{AppletModule1: TAppletModule};

exports CPlApplet;

{$R *.RES}

{$E cpl}

begin

Application.Initialize;

Application.CreateForm

(TAppletModule1

AppletModule1);

Application.Run;

end.

---- 在上面的DPR文件中,Application对象的类型是TAppletApplication,而不是TApplication,它是在CtlPanel单元中申明的。而且CplApplet函数也已经由CtlPanel单元定义好了。

---- 第二步:更改AppletModule的属性

---- 一个AppletModule对象代表一个对话框(即applet),一个CPL应用程序可以包含多个对话框。你可以通过Delphi向导来增添多个AppletModule。

---- AppletIcon属性:指定一个图标,此图标将出现在控制面板中。

---- Caption属性:显示在图标下面的文字。

---- Help属性:出现在控制面板窗口的状态栏上的文字。

---- ResidIcon属性:图标资源id,此属性与AppletIcon属性互斥。

---- ResidName属性:字符串资源id,此属性与Caption属性互斥。

---- ResidInfo属性:字符串资源id,此属性与Help属性互斥。

---- 第三步:编写事件句柄

---- 在控制面板中,当鼠标双击对话框的图标时,相应的AppletModule对象会产生OnActivate事件。为了响应鼠标的双击,你需要为TAppletModule的OnActivate事件属性提供一个事件句柄。

procedure TAppletModule1.

AppletModuleActivate(Sender:

TObject; Data: Integer);

begin

MessageBox(Application.ControlPanelHandle

'Delphi 5 is so great!'

'CPL Demo'

MB_ICONINFORMATION);

end;

---- 第四步:CPL的安装

---- 由于动态连接库工程文件中有一个{$E cpl}编译指示字,编译此DPR文件将产生一个扩展名为.CPL的文件,它就是我们所要的控制面板应用程序模块。控制面板程序的安装十分简单,只要将CPL文件拷贝到Windows的System目录(或者Windows NT的System32目录)下即可。当你再次打开控制面板时,你所编写的控制面板应用程序就会出现。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘