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

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

5000万次下载:HandyGames如何征服Google Play? 红帽大战Ubuntu:750小时免费企业版红帽套餐即将登陆AWS EMC Sanjay Mirchandani:92%虚拟化,使更少IT人拥有更大交付能力 从NSA携谷歌、微软等9家名企监控用户行为看数据安全 【专访间】新科兰德创始人左磊:我们的“卖点”是“数据弹药” 甲骨文公司宣布推出最新Java EE 7 10款最佳CSS/jQuery开源图片说明 创业者应避免对投资者说的五句话 直接拿来用!最火的iOS开源项目(二) 西部数据Pat Wilkison:云计算市场是创新热点 猎豹浏览器发布手机版:PM谈开发理念 成为伟大开发者的“九步曲” 使用GPU构建更便宜的Google神经网络 Facebook与Yahoo!的“火花”:系统间实时数据流管理工具 视金钱如粪土?Yahoo!又要买了,梅姐的算盘是这样打的 MySQL手册不再遵循GPL协议:MySQL走向闭源前兆? 扁平化设计会扼杀人们的创造力吗? 又一巨头涉足移动视频分享领域:传雅虎欲收购短视频应用Qwiki 史上最牛:主要靠三消游戏IPO King也许会是第一家 乐视超级电视预约启动 1小时预约近1.4万台 王坚:未来一年阿里云会有很大变化 梁胜:开源并不是做好软件的唯一方式 如何为IE 10编写特定的样式 MySQL手册许可证更改乃是Bug惹得祸 开源世界高峰论坛首批演讲议题公布 测试工程师的心灵鸡汤:谦虚、不沉默、有危机感、不断努力 高德地图API“沿图有你,晒出你的LBS应用”活动拉开帷幕! 谁能找出Windows 8.1的安全漏洞,就将获得微软10万美元奖金! 【直击美国云计算】Facebook分享数据中心新网络架构Fabric 【直击美国云计算】OCP发起产业界的Maker运动 红帽刘长春:开源是推动云计算和大数据发展的重要力量 Delphi的编程环境 救命:如何读取像http://www.csdn.net/demo/demo.txt这样的文件存放到本地? vb调用vc编的activex 在DELPHI中怎样COPY一个文件夹? VB的界而的确容易制作,但似乎过于简单 如何在ATL环境下动态地开辟一个字符串型的缓存区 一句sql 关于中国软件业问题的一些看法 用xml做数据库是不是不安全 关于setwindowlong的问题!!! 关于WINSOCK 通信的问题 Query Analyzer怎么刪不了多筆記錄﹖ getchar ()的问题 ◆→访问csdn会让我“死机”! 纯技术咨询,请大家踊跃发言 一个串口通讯的问题。 一个庞大的计算计划,求解素数的间隔的 那句效率高点? 有没有sql server+asp开发的朋友,怎样把sql server数据库上传到服务器上,分绍有分! 如何注册使用控件,急!!! CView类中如何实现浮动的提示信息? 怎样给对话框创建一个视1? 报表计时用table,不用query,报表已设计好了,在显示预览时如果将一些不符合条件记录筛选择掉呢? 请问流是个什么概念? 我是初学,请指点 送分求购api用法及中文说明! asp页面可否设置关键字,使文章能被搜索引擎搜索到? ~~谁想做世界杯活力宝贝~~? 如何将StringGrid 中的数据保存为Html格式的表格 关于断点续传,请问大家 php中有没有 与 asp response.clear等同函数 单片机高手请看:中断中的中断,麻烦中的麻烦。 怎一个难字了得?挑战高手 如何改变LISTVIEW中各项的宽度 求《C++ Primer》中文版电子书下载;ejian@21cn.com 请问:在Asp中如何使用ODBC和SQL 注册表help... ListCtrl控件设为ICON属性,请问是否有subitem属性? Win2000系统去访问WIN98系统的服务器 PING的通 但打开的时候报参数出错! vb调用vc编的activex oem怎么老是连不上阿? 简单的入门问题:如何让菜单变灰? how add icon to one popup menu ? 怎么判断一个form对象变量为空呢? 发送和接收数据包问题? ActiveX问题,微软专家请进.<------------- 急 *.idc不能运行了,请问这是为什么? dbcontrols(泰山__抛砖引玉) 怎样才能够把ado记录集写到EXECL并进行打印呢? 如何判断字符串中,有几个指定的字符? xml数据文件倒入数据库,有什么好方法。 检查数据的有效性,最好是在哪一个事件中检查?怎样写,可否给点例子。 如何在DELPHI中调用FLASH图片。谢谢!有帮助的给分! 学校买来50套课桌椅,买张椅子28.5元,没把椅子16.5元.买桌子比买椅子多花了多少元? 础润而雨,础润的原因是什么? 哪里有人教版新课标四年级下册数学教案(表格式的)急用, 小树成长扩句至少扩两处 怎样考好作文 2010年青岛出版社暑假生活指导七年级{下册}P80Y页词汇练习 将下列短语译成汉语P81页 D按要求变化词性P82页 C和D部分P85页 句型转换P88页 C部分P90页 采访调查P92页 综合实践P98页 材料解析1P101页 一个长方形绿地的面积是360平方米,宽是9米.长不变,宽增加到18米,扩大后的面积是多少平方米? 一次买5千克鸡蛋打八折少花2元,则鸡蛋的原价是? 小学四年级数学下册全册教案 月晕而风,础润而雨~ 与一个爱看书的人对话的作文400字 在一个高为6米,长为10米的楼梯上铺地毯,一共需要地毯( )米. 月晕而风础润而雨是什么意思 这辈子最爱的人阅读答案 如图,在一个高六米长十米的楼梯表面上铺地毯,地毯至少是多长题就是这样了,没办法再补充了(复制的别来,无意义灌水的别来,二楼三楼能否说明如何做出 “有无相生,前后相随”和“月晕而风, 小苗与大树对话课后问题:读书有什么好处(在文中找出来) 2011暑假生活指导 青岛出版社 绿色封面的答案 人教版一年级数学下册认识人民币怎么有小数 成语“月晕而风, 小苗与大树的对话 采访一位身边爱读书的人 1,准备工作:我要采访的人是,因为 .2.我要采访的问题是1 .2/. 2013年春新改版人教版小学数学一年级下册全册教案 是新改版的哦 作文开头怎样写才吸引人 小苗与大树的对话 苗苗和季先生对读书有哪些见解 荣德基典中点英语八年级下册Unit4SectionA答案 作文的开头怎样写才能吸引人? 关于第一次月考感受的作文成绩优秀,急需一篇作文 荣德基初中英语系列典中点七年级英语上units8r版答案 “小树长成大树”.“聪明的你由小长大”这些现象主要与细胞的什么和什么有关? 第一次月考感悟作文600字 学校新购回六套办公桌椅共用去1638元.已知一张桌子的价钱是一把椅子的3.2倍,1张桌字的价钱是多少?要把步骤写清楚,以及那样做的原因 不要说废话!最烦这样的人!郁闷!@#¥%%…………&………………*)——()( 第一次月考感想还没有发下成绩,第一次月考的感受 台阶ac的宽度为1.5米,其高度ab为4米水平距离bc为5米,要债台阶上铺地毯,求地毯面积? 求作文!《月考》 作文:《我的父亲母亲》急!我该用哪句当开头 哪句当结尾 还是两个都开头或结尾在父亲与母亲的悉心呵护下,我渐渐地走向了成熟.父母的爱是无法言语的.40 如图,台阶的宽度为2米,其高度AB=4米,水平距离BC=5米,要在台阶上铺满地毯,那么要铺地毯的面积是?米图形已给出,时间紧迫!只需说出最后答案即可!又好又快的加分! 一束光线与平面镜成30度角入射,则反射光线与入射光线之间的夹角为多少? 有小学三年级下册数学的教案吗 学校买来60套办公桌椅共36000元每张桌子比每张椅子贵300元桌子椅子各多少元? “月晕而风”“欲来之际”“冷眼看去”各是什么意思越准确越好 学校买来20套办公桌椅,桌子每张100元,椅子的价钱比桌子少2/5,椅子每张多少钱? 在高为1.5米,斜坡长为2.5米得楼梯上铺地毯,则所需要地毯的长至少为?1,)2.5 2)3.5 3)4.5 4)6怎么想的? 作文《月考小结》怎么写 学校买了两套办公桌椅共1060元,每张桌子比椅子贵130元,那么桌子椅子各多少元.两编织小组共有78人,每天编草帽390就、顶,第一组比第二组少16人,球第一组每天编多少草帽 人教八上英语典中点10,11,12单元答案 2000字作文月考总结给个思路来看看吧! 学校购置10套办公桌椅,共用去3200元,其中两张桌子的价钱正好相当于3把椅子的价钱,分别算出每张桌子和椅子的价钱? 每张桌子60元,每把椅子25元,学校一共买了90件这样的桌椅,花了3300,桌子买了 作文,有关初一月考总结. 张老师用8000元为学校买20套不办公桌椅,每张桌子的售价是每把椅子的9倍,每张桌子和每把椅子各多少元?(列方程解答) 学校买来50套桌椅 共用了2400元 每张桌子28元 每把椅子比每张桌子便宜多少元? 月考总结作文 光线垂直射到平面镜上,如使镜面转动150角,则反射光线转过的角度是________.(为什么?) 《口技》阅读全文,1.本文主题部分写口技表演,以一个家庭为中心,学了那几个生活片断?有几次高潮?各有什么特点?口技——林嗣环京中有善口技者.会宾客大宴,于厅事之东北角,施八尺屏障,口 谁能给我一个月考总结的作文啊 光线垂直射到平面镜上,如使镜面转动150角,则反射光线转过的角度是________.这个转动 150角 是90变150 还是90+150 但答案是150° 请高手们看看 二、按要求改写句子.小树长成了大树.(扩句) 学校操场的北墙上爬满了爬山虎.(缩句) 若入射光线的方向不变,而将平面镜转过θ角,3QA转过θ角 B转过2θ角 C转过二分之一θ角 D无法确定 并说明原因 光线垂直射到平面镜上,然后使镜面转动20°,则反射光线转动的角度是
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘