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

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

新平台,新惊喜:记第二届Coding For Fun 创业建议泛滥成灾 实用的不多 腾讯云俱乐部北京站:知名手游商畅谈云时代开发运营策略 LG再战平板市场:将推出8.3英寸平板G Pad 编程语言与工具专题论坛:各类编程语言使用体会分享 淘宝、腾讯、豆瓣、支付宝、网易专家热议大数据分析与BI实战 “创新或灭亡”:Google的80/20只是转移视线的说辞罢了 自动化编排,配合SDN的iMC V7更加开放 [回顾]比尔·盖茨传奇的前半生 IT基础设施与运维论坛:IT基础设施及运维经验分享 记华为HCC2013 Day1:发力高端存储 HCC 2013虚拟化论坛:虚拟化未来发展方向 Windows 8操作系统市场份额增至7.41% Windows 7仍最受欢迎 【开源专访】Sea.js创始人玉伯的前端开发之路 SDCC 2013:阿里周宝方谈“去IOE”战略及实施 百度和高德:最后谁是地图的王者? 【CTO论道】瑞智和康CEO陶建辉:软硬结合是消费电子新潮流 10大高效率原型设计工具 JIRA与敏捷:李小龙教给我们的敏捷开发之道 百度开放云:Light Up The World,与开发者共享云未来 有胆你就来!11个在线编码大赛 CTO如何避免决策失控:第一步-定义角色 后机械硬盘时代,那些引领风骚的闪存初创公司 致远文杰:传统企业如何实现移动化转型? 记华为HCC2013 Day2:SDN开放编程系统OPS打造生态圈 HCC2013:华为FusionCube融合至简,性能至优 已确认Stephen Elop候选微软下任CEO 英语对于软件开发者来说到底有多重要? SDCC 2013中国软件开发者大会成功落幕 新浪微博宋琦:PHP在微博优化中的“大显身手” 8月份浏览器份额:IE浏览器PC端出现反弹 移动端跌出前五 在主框架中建立了一个工具条,如何在视中对其进行操作 有戴过隐形眼镜的朋友吗?感觉怎样?我最近配的怎么感觉不舒服? 又快到毕业就业的季节,看看这两道题(c),就当热身如何? 实习了,散点分,大家乐一乐! 在Redhat8.0下关于nv显卡驱动的安装问题 小弟偶现要搞电子地图,请各位推荐推荐有关的书籍,一定给分 怎样检验文本框内是有效的数字 又快到毕业就业的季节,看看这两道题(c),就当热身如何? 如何在VS.net 下编译.cpp文件(非Windows应用) 请问像comp.lang.c++这样的新闻组,我要怎么设置才能上呢? 如何知道mfc程序需要哪些dll文件阿?vc有没有这个功能? 各位好,小弟有一事要问, 错在哪里了? 又快到毕业就业的季节,看看这两道题(c),就当热身如何? 这些是不是b/s模式??为什么?? 决心重新捡起丢下多年的数学,大家祝我好运吧! lj8101(笨笨)请进 !!!可用分不再增加的对策!!! 急,关于SQL查询 请问怎样new一个多维数组? 简单的application高手赐教!小妹急啊,谢谢! net 关于程序接口问题,请高手指教!!! 高手帮忙 我在SQL2000中有个字段类型是SMALLDATE,与CEDIT控件联结后,类型是CTIME,但显示不出? 我该怎么学? 怎样让我的程序运行时,始终在最前面 散分!!!回到CSDN!! 经常在运行屏幕保护时VC6.0 就出现了运行错误 嘻嘻~`问同学借了一台数码相机回家,自已拍了几张房间里的照片.大家有兴趣的就去吧!小A房间大暴光 请众位大侠,能不能强烈的推荐一本关于Delphi入门级的经典著作!谢谢了!推荐者必有分 请教! 关于Win32下的字符串操作 菜鸟提问,估计大家都会,指点一下 为什么我用ie的时候,新打开一个页面,他的还原形式的大小总是最小化的? var oXL = new ActiveXObject("Excel.Application")这句话有什么问题? 高分求算法 如何根据IP来得的到对方的操作系统类型 怎么这么老套,大家想想办法啊! 我要学DirectX了,请大家帮忙找一些这方面的资料。 关于出错信息的问题,多谢指教! Csdn,为什么你现在不忙了! asp.net的优点到底在哪里 大家能否推荐几本无线应用方面的书(如:短信编程、WAP编程), 谢了! 最基本问题 哪位写过控制摄像头的例子, 如何使用XP的远程桌面管理?远程控制. float 5.29 显示出来会是什么? 要不要学c++ 不能保存文件了,怎么回事? CString的一个问 “我的心已经控制了我的思想!我的心已经控制了我的思想,十万火急! 中华民族是宇宙人类思维认识物质个体太极物体最早的民族吗? 外贸英语合同这句如何翻译?多谢Irrevocable Letter of Credit issued by buyer or buyer’s nominated party in favor of seller or seller’s nominated beneficiary, shall be opened within 7 working days after receiving performance bond,provid 有女孩让我做她的心灵鸡汤是什么意思? 人类的思维怎么得来?拜托了各位 谢谢 如何提高逻辑思维? 心理学:思维与感知有何区别与联系? 西字旁加个乍字怎么读? 请你谈谈一个优秀的班集体对你成长的帮助 我想起个比较霸气,cool,或个性,好听的英文名字本人叫李静,但是是男生,性格比较开朗~ 一个西一个寸这字读什么如题 一个优秀的班集体对每个人的成长有什么意义 虎鲸厉害还是蓝鲸厉害 1个西在加个各字读什么字? 乔丹读哪个大学 蓝鲸厉害还是虎鲸厉害 内部语言思维与视知觉我们在处理文字 英语 数字信息时往往就算不出声也会运用内部语言来思维 就是潜在的大脑发声 那么我想问的是如果没有内部语言就单凭视觉我们能够理解文字信息吗 挥汗如雨的意思和造句 虎鲸vs巨齿鲨vs蓝鲸哪个会赢 盲人如何进对行语言思维进行感知? 张袂成阴,挥汗如雨,比肩继踵而在,何为无人?意思. 土壤动物的作用 写文章,感觉有思路,有语言,但是总感觉连贯性差点.有很多好词好句真是稍纵即逝,一转眼就忘了.另外我在很乱的环境中,很难想出东西来,更难组织语言.请问大家是什么原因,怎么办? 华罗庚依旧挥汗如雨地读书的挥汗如雨是什么意思? “心”和“脑”在解剖学上的区别? 高中生文字语言逻辑能力下降 感觉自己的正常思维都没有了最近一些很简单的问题总是反应不过来 大脑有强迫意识 总在思考的下一步想我为什么要这样做 却给不了解释 然后就开始怀 挥汗如雨的近义词是什么快 土壤动物在生态系统中成份一般是消费者对吗? 请问你们是怎么阅读的,就是当你们看到一句话时,你们的思维活动是怎么样的,感觉是怎么样的呢?据尼古拉 特斯拉自己说 他在看到一个词或句子时 ,他的脑海就会浮现对应的情景,不知道你们 When you told me you loved me ,Did you know it would take me the rest of my life? 为什么一定要总去考虑别人的感受!这真的是相互的么! 翻译I was drawn at the same time to that place near the fence 马哲辨析题:世界的本质是物质,物质的属性是运动 往事桩桩件件,1个个在前眼前.是什么词拜托了各位 谢谢 英语翻译In ancient times,people compared human virtues to pure jade on the one hand and admired its beauty and fine textures on the other. 马哲辨析题:世界是物质的,物质是运动的,运动是有规律的,规律是可以把握的. 以‘历史’‘生命’‘教育’‘人生’四个词为核心,写一篇短文 那是一个消遣的好地方 怎么翻译 It is a good place to ___ ___ some time . 马哲辨析题:世界统一与存在不是说世界统一于物质,而物质即存在么?可是这句话不对啊!希望将这道题回答得尽可能详细, 兔死狐悲是啥意思? 考虑别人的感受.谁来考虑我的感受?谁来考虑我的感受? Now is not the time to place blame.句中的place 翻译一下句子. If You Wanna Be Happy (Aka If You Want To Be Happy) (Live At Pj'S - 1963) 歌词 有一首80年前后词是“静静的校园,.我们的生活.” 急求歌词及mp3歌曲.有一首80年前后的校园歌曲,我记得第一句歌词是“静静的校园,.我们的生活.” 急求歌词及mp3歌曲. You can do anything if u really want to ! TO;liu yun@penpal.com From:Alice@penpal.com Dear liu yun, I am happy to have a new pen pal.I live i 该生态系统中,非生物成分除了水、 空气、土壤外,还应该有_______ . 上面一个西、下面一个米、这是什么字?... I will be used to living alone after leaving you 西字旁加个太怎么读 上边是西,下边是米是什么字 咋组词 They will be happy ( ) they live in the nature.A.if B.before C.because D.after 一个西字一个少字怎么读 it's not easy to forgettsomeehing that really happy: 灵心精神是啥意思啊? 如何彻底了解人类思维?从而做出超智能AI?求大虾指条明路我正往这方面前进... They in together is really very happy “灵明的心 ” “灵明的心 ” 关于 了解人类思维,想法的书 《荒漠里的眼泪》的主要内容
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘