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

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目录)下即可。当你再次打开控制面板时,你所编写的控制面板应用程序就会出现。

英特尔百度携手推出首个跨平台应用商店 12月9日:计算机软件第一夫人Grace Hopper出生 触摸屏将成笔记本标配 电脑行业或将迎来又一春 触摸4G,你必须要知道的那些事儿 TIOBE 2013年12月编程语言排行榜:Transact-SQL冲刺年度语言 敏捷开发的6个实战经验 【图文】走近华为企业业务与支撑万人技术团队的云数据中心 《习惯联盟》陈晓冬:与京东云合作让我们没有后顾之忧 流计算与批处理同现:畅享大数据时代的开源实践 挑战和机遇并存:大数据时代机器学习与可视化 【企业开源系列】收发一条Twitter推文的背后 在IE11中更快地获得您需要的内容 暴露程序员身份的8个行为 英特尔创新应用大赛大评审!创新也有中国风 苹果面临一问题:正源源不断地失去优秀工程师 初学编程者必知的五个网站 大数据基准测试专题论坛:基准测试是一把尚未完成的尺子 大数据应用(下):应用驱动技术,DaaS创造价值 大数据研究与发展专题论坛:大数据在各领域中的应用及发展策略 雅虎新目标:欲收购照片分享网站Imgur 移动开发工具访谈《近匠》第01期:七牛云存储—BaaS进化论 ShareSDK:A轮融资到位!将推社会化评论SDK 70美元,你也能用Raspberry Pi做个专属iBeacon基站 7个鲜为人知却超实用的PHP函数 从管理远程式团队和分布式团队中所获得的宝贵经验 Netflix开源数据流管理器Suro Google新创意:天花板加麦克风 人脑植芯片 苹果获弯曲屏新专利 可给手机弄个大波浪卷 真正的跨平台硬件测试:3DMark已打通PC、iOS、Android 将Chrome浏览器变成终端工具 【开源推荐】AllJoyn:打造全球物联网的通用开源框架 假脱机是什么技术? 谁熟悉COGNOS的前台展现吗,可不可以教教我拉,有没有中文的文档可以借我看看拉! msgbox的权限? 数据库 vfp->sql server? 谁能告诉我下面程序代码在内存中被编译器实际做出来的结果是什么? 很急:关于msgget的调用 vb 连接数据库 是不是SQLserver2000不支持些SQL 请问如何用程序控制使FORM最大化,最小化? 如何在datatable中再查找符合条件的数据? 为什么打印宽度最大为21厘米? 请问我在一个.js文件中怎样调用其它.js文件中的资源 这样做到不刷新,获取application的变化? 请教状态栏的问题 vfp问题?急~(关于控件的使用) 破解bios开机密码 如何自己编写代码结束所有的应用程序呢?请教! 请问如何在C#中对字符串或byte[]进行crc32校验。有现成的调用吗? 菜鸟的一个有关数据库的疑问?有谁知道吗? 神啊,救救我吧! 神啊,救救我吧! 神啊,救救我吧! 菜鸟提问,如何知道MDB数据库中是否存在一个指定表,谢谢!急…… 关于用DBGRID向数据库添加主细表的问题?高分奖赏! 关于窗体菜单的问题? 很急!!!!!!!! 欢迎大家推荐好的学习JSP的网站! 数据库 vfp->sql server? 问一个最好的查漏方法 ARM Develop Suite eval version的破解方法或者破解文件 一个word文件,怎么让用户一打开它时 出现保存对话框? ie6.0的快捷键问题 这里人气旺,借贵宝地一用。熟悉网站搜索引擎的朋友请进! 交换机和路由器有什么区别?? csdn怎么回事啊!!昨天登陆后竟然显示别人的用户名,今天竟然连我的注册信息也改了.TMD 关于SQL SERVERS2000 建数据库的问题--请进 请问哪有讲算法的好书啊! 关于单片机??? 向各位大侠请教:怎样在JAVE中调用文件 SYBASE 数据库设备删除后 Vitual Device Number 不能释放? 高分诱惑(痛苦莫过于分太多) RichEdit中的COM问题!!! 各位师兄师姐,帮帮我,好吗? 一个图形文件,如一个JPG图形文件,怎么才能通过流读进来,然后转化成一个字节数组。 关于Activeform中INF文件的问题。(解决问题者有分) 我不算是ASP的学习者,但想请教个问题,一小段ASP代码 请推荐国外(or 国内)优秀的编程网站,for delphi 或vc等等 请指教:关于管理软件权限制作方面的问题 求救:关于从XML文档中抽取文本的方法!!! 怎样读取系统时间,日期?急! 请推荐一两本shell编程方面的好书。UNIX,LINUX不论。 我们热爱大地,就像初生的婴儿眷恋母亲温暖的怀抱一样,这句话的含义是什么? 【麦哨】课文两次提到麦哨,你从其中体会到了什么? 读书故事的征文怎么写 例子:我们热爱大地,就像初生的婴儿眷恋母亲温暖的怀抱一样.仿写:我们热爱山川,就像__________________. 我们热爱河流,就像__________________. 我们热爱_______,就像________________. 课文为什么用麦哨做题目 《十六年前的回忆》阅读答案(哥哥姐姐们帮帮忙!)1.这篇文章主要写了李大钊同志( ),表现了李大钊同志( ).2.找出与“我蹲在旁边,看他把书和有字的纸片投到火炉里去”照应的句子, 荷兰为什么被称为“水之国”“花之国”“风车之国”“牧场之国”?【还有有关荷兰的资料】急! 模仿姥姥的剪纸写一篇(谁)的(什么东西)的作文!比如奶奶的饺子作文,但一定一定要表达一种亲情! 我上初中时为什么总想起小学同学下课爱想小学的趣事 描写重庆火锅的文章 荷兰是水之国,花之国.资料! 谁能模仿《姥姥的剪纸》写一篇作文!急 初中议论文答题思路 比如 论证方法 荷兰是"水之国,花之国."怎么把句子写具体? 模仿《姥姥的剪纸》写一篇作文不少于四百字.在我们的人生中,有着许多像《姥姥的剪纸》中的姥姥一样的人,他们的特殊才能,以及对我们的浓浓深情时常进入我们的梦境,值得我们回忆.打开 看作文和读者上的文章,需要读出来吗我语文很烂,请认真的回答我,说实话,我写的作文很不流畅,语言表达能力不是很好 关于写春节的作文1000字以上. 武大附中怎么样 《美文》《意林》和《读者》哪个更有助于写作 杜荀鹤《小松》阅读题 1.首句扣住小松之“小”,描写了它的( )和( )2.这首诗借松写人,托物讽喻.诗人写小松有什么用意? 武汉大学附属中学 怎么样 关于1-6小学语文人教版课文题目 作者..急求啊啊啊啊...说出来吧,感谢各位6c 求四个字形容祖孙情忘年之交形容得是友情吧~ 请用“湖水”“月亮”“笛声”三个词写一段话,要求表达不同的心境高兴的心情和忧伤的心情 求助大家1-6小学语文人教版课文题目+作者.急求啊啊啊啊...说出来吧,感谢各位4Q 作文 祖孙情 契科夫的《变色龙》的主角,反派,冲突,故事背景,情节,高潮和结局? 为长大后的我做标题的想象作文350字 写祖孙情的作文 有什么事例 用“月亮”“树影”“笛声”编一段话帮我用“月亮”“树影”“笛声”这三个词编一段话,最好用上修辞手法,50字以内 丨惟我独尊丨,我的“初一下册语文第一课 的读一读写一写 中选4个词 至少100字写几段话”的回答不好吗?春天到了,春姑娘悄悄地来到了我们的身边,所到之处,都充满了生机。在那碧绿的 求15个比较优美的排比句 谁知道用汉语怎么写以下几个词?beforegethroughannouncement 作文开头是:人生到处有风景,只要你有一双发现的眼睛.这类作文是什么话题?老师让我们以:人生到处有风景,只要你有一双发现的眼睛.为开头.可我不知道只是要写风景的还是写别的什么话 关于过年的祖孙情作文 关于赞汉字的诗歌 自己写的 请以“人生到处有风景,只要你有一双发现的眼睛.”为开头,写一篇文章要求:除是格外,文体不限.续写时,可以记叙经历、抒发感情、发表见解等、字迹工整、书写规范、不少于600字文中请不 小松 语文用3个词写段啊快啊求快啊用用眼花缭乱,莹光千点,苦雨孤灯,合了拢来,爱的调和,飘飘漾漾其中3个词写段300字左右快来人啊 请以“人生到处有风景,只要你有一双发现的眼睛.”为开头,写一篇文章,⊙ o ⊙ 必须是开头 初一语文课文地毯下的尘土读后感 五年级读书征文怎么写我不要整篇文章的,告诉我第一段写什么,第二段写什么……就行了 跪求八年级以'人生到处有风景,只要你有一双发现的眼睛'为开头的作文要开头啊,内容可以就行,要两篇! 好中学能代表一切吗?是不是不管在怎样的中学读书,只要读得好就说明你有能力。中学(初中)不怎样(学校)都没关系。请网友们帮帮忙,也请看到问题的老师给与帮助。 2013年《阅读年选》征文比赛 写什么好 最好给个例子作文 初中生活委员工作总结,两三百个字就可以了,重要的几点多谈谈就可以了,不用面面俱到, 想学文的话什么是必须补得 仿照《人民英雄纪念碑》写武汉的抗洪抢险纪念碑的文章.(500字左右) ..f晓得的人说下哈,我在此先感谢大家了4Ld 初中的酸碱盐方程式很重要吗?需要全部背会吗? 初中的化学基础差,怎么补习?影响高中的学习吗? 十六年前的回忆的阅读答案 反映西部风景的文章有什么? 高中朋友很重要吗 这“宣告”、“声音”具体是指哪句话?课文《开国大典》. 照样子,写句子.例:我们热爱大地,就像初生的婴儿眷恋母爱温暖的怀抱一样.我们热爱山川,就像                           .我们热爱河流,就像 麦哨课文 契科夫变色龙变色龙构思有何特点?至少两百字,分数不少,老大, 我们热爱大地,就像初生的婴儿眷恋母亲温暖的怀抱这句话是把什么比喻什么 麦哨这篇课文讲了什么 变色龙 契诃夫 阅读
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘