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

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

无需999,也不要499,99美元Linux超级计算机带回家 微软反击AWS:推出EC2并大幅降价,“价格战”正酣 Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 Jolla下月展示首款Sailfish手机 将重点发展中国区 海外1GB大容量游戏,国内渠道如何分发? 真正的能源大户是WiFi网络 数据中心只是“伪军” CloudFlare创始人传奇人生:7岁编程,法学博士,获哈佛商学院最高荣誉 2013云计算深入实践 jQuery 2.0发布 不再支持IE 6/7/8 Google再发力,更新Dart M4! 【多图】鼠标、光驱等13个即将消失的PC技术 直击OpenStack美国峰会:分享五大经验收获 Project Savanna:让Hadoop运行在OpenStack之上 看Go桌面技术副总,如何解读Facebook Home 增长最快的游戏公司Supercell 你学得会? 移动周报:为什么我们出不了IT神童? AWS、VMware和OpenStack谁是赢家? 消息称苹果正在寻找新任CEO取代库克 如何让SQL SERVER2000 存储过程中的错误信息在DELPHI应用程序中弹出MESSAGE框! 关于《com本质论》和《com技术内幕》中的聚合问题? 雨下得好大!!!!! 如何打开一个Excel编后,马上执行一段初始化的代码? 请问有关于缓存的问题 请教高手,关于Actionscript问题 各位:在哪能下DVDdivx格式,当然要免费的,谢谢 Image报错,急切 老外常用到的一个词 : Project ,在中文里我们该如何理解这个词? ■■■■■■■■马甲的最后20分!■■■■■■■■ 非常急地问一下:installshield的问题!100分!不够加!!! 重庆考区,全国计算机3级什么时候可以拿证书呢???? 一个jsp页面里面是不是不能同时有两个scope分别为application和session的Bean??? 给个简单的例子好吗?treeView----------asp.net------VB 我的facade session bean中老是lookup 其他的EJBs 不成功? 这两句什么意思啊? 结识ASP高手,将来会有项目介绍!:) exchange server 2000 能装在xp上吗? 怎样使自己的程序被安装的时候安装上自己制作的字体?? 求助:帮小妹找份工作 有高手在吗?帮帮忙! 一个在ASP中很简单的问题 很想很想很想散分 预报天气如“叫床” 湖南性感女主持惹争议 Websnap中TEnduserSessionAdapter组件的TadapterField问题~~~~~~~~~~~~~~~~~~~~~~~~~~ 急!!帮我看段代码! 为何对话框程序加入RichEdit控件后不能运行? 想知道word.application的朋友请进: InstallShield Express Custom Editon for Delphi那里有下载? 请问vb.net和vc#能不能创建数组控件??? 请问vb.net和vc#能不能创建数组控件 请问一下,vc 写的 dll,使用postmessage给出一个消息到窗口,在 vb 中应该怎么样响应? 我想开发一个数据中间层但不知哪用.net ATL MFC 开发好,能给个建议吗? 寻求cs CD-key 文件名(很有些困惑!) 高手近来拿分,请教一个算法问题,共开三帖,每帖一百分。 在windows2000+delphi6+ado+access2000做的程序可以在windows98中用吗? 我想学门语言,现在哪种最有前途啊 一个免费的电影网站,不需要手机不需要花钱就能看电影 数据库存储一些记录后不能写入,数据库文件异样(BDE) 急问:这样的文件怎样导入数据库? 一个免费的电影网站,不需要手机不需要花钱就能看电影 IIS下配置php-4.3.2-Win总是不行??? 很多书上都有说jsp:useBean的scope属性的application,是指任何使用相同的application,这个相同是什么意思? 关于统计的问题 马甲识别诸法之我论(转贴) 弱弱地问一个问题。 如何用键盘弹钢琴? ASL是什么? how to 高考 我做寒假作业有一题看拼音写词语的拼音是“pi pa”,请问是“琵琶”,还是“枇杷”? 单姓与匈奴有关系没 磨练的近义词是什么 口碑好,天生聪慧,懂自我反省的动物 a为任意整数,证明:a(a+1)(2a+1)一定是6的倍数 五魔方这顶层棱只剩两个了,有没有直接复原这个的公式 口碑好,天生聪慧,懂自我反省!帮助猜一猜是什么动物 剑灵水月平原比武八卦牌怎么获得 一堂(这里填形容词,如:有趣、难忘······)的课,快,350到400字左右!快 口碑好,天生聪慧,懂自我反省!是什么生肖? 剑灵水月比武八卦怎么得 生活可以用什么课形容词 ≤口碑好,天生聪慧,懂自我反省!是指哪个生肖 剑灵力士水月平原比武八卦牌合什么属性好? 《闻王昌龄左迁龙标遥有此寄》中渲染凄凉气氛的诗句是? 蛤蟆表示数字是几 填动物叫声燕()雀()猴()羊()鸡()猪() 求数学集合的答案如题:集合A={x1,x2,x3,x4,x5},计算A中的二元子集两元素之和组成的集合B={3,4,5,6,7,8,9,10,11,13},求集合A. 巨型蝌蚪意味着什么?某山区溪流中,发现不变态的巨型蝌蚪,可推测,当地婴幼儿比其他地区患病机会增多的疾病是什么? 匈奴为什么在历史中消失了? 锻炼的近义词是什么 请问一般酒店,被子,床单脏了到哪里洗 剑灵最新的水月平原比武八卦牌用什么牌子用什么牌子能喂满暴击的最大值还有请问下对于灵剑来说升极限恶女有没有必要 我现在是极限万魂 填空题(按以下要求完成)log以2为底的0.7,log以3为底的10,log以0.2为底的1,log以0.4为底的0.4,用小于号连接 填空25增加它的15%是百分之几 100千克比125千克少百分之几 剑灵八卦坊合成水月平原名匠合成牌会赚钱吗?还有一个就是拍卖行里水月平原名匠合成牌同一张牌好像有五个.难道制作出来的每张八卦属性都不一样吗.最后一个问题,是水月平原工匠合成牌 认知英文怎么翻 口碑好,天生聪慧,懂自我犯省的动物,是什么动物 剑灵水月平原名匠八卦牌板如题,能开出8个牌子,但是无属性!,想知道,是不是用 合成牌8号,向上面打属性,比如用8个8号的暴击,打到1~8没属性的牌板上!是100%属性继承吗?还是那8个牌板有自己的 《钱塘江春行》中的名句能不能确定,一定,肯定,以及坚定的告诉我是那一句 百分比知识 一种奶糖,现价比原价降低了百分之十五( 15%) 表示原价的100分之15 你怎么看待匈奴对中原的威胁与它后来的消失? 家里长蘑菇代表什么 《说岳全传》读后感字越多越好,有能力的最好1000字,最少500,越多悬赏越高 匈奴在短暂的东方生活中,对中原汉王朝构成了怎样的强大的威胁快. 四、完成下面的填空题 看到这个说说感想. 伊娃?什么意思啊? 家里长蘑菇什么寓意 令蟾什么意思 两道应用题,商店有一种衣服,售价96元,比原来定价格便宜25%.现在的售价比原来定价格便宜多少元?一个弟形的面积是12平方CM,它的上低是3CM,下低是5CM,高是多少CM?《列方程解答》 家里木桩上长了好多这种蘑菇 这是什么蘑菇 叫什么? 100千克比50千克多1/2.叛断题.请说明一下原因. 我要读后感给我一篇读后感《童年的价值》200字 “思路”这个词的英文如题 问王昌龄左迁龙标遥有此寄 从哪些诗句看出龙标被贬之地极偏远 敌敌畏的LD50是多少毫克每千克?(30.00分) A.30 B.40 C.50 D.100 磨砺的近义词是什么? 请解释一下这段英文中最后一句话的意思It isn't that you can't do all the things you like,but you change.You don't like them any more.Some of the old habits seem so wasteful and unsatisfying,you really lose your taste for them.So you s 已知AB平行CD,写出角B于角D,角C的数量关系,并说明理由 求三阶移棱六色魔方最后一步公式白色底层跟黄色顶层拼好了 闻王昌龄昌林左迁龙标遥有此寄诗中通过景物描写为全诗创造了悲凉沉重的气氛的诗句是那句 庆元旦的优美句子 我要几篇读后感伊索寓言的 安徒生童话全集的 西游记的 还有高尔基的童年的 请准确地向我表达这段英文最后一句话的意思hi,i am steven i would like to create friendship with you.i am from african.send to home number i will call and talk more.这是一个外国网友发来的,不要把这段话全部翻译,我 匈奴怎么消失的 我要读后感 急狼牙山五壮士 读后感要真情实感 闻王昌龄左迁龙标遥有此寄这首诗有哪些景象,请写出来 若a为整数,试说明整式a(2a+1)-2a(a-1)的值一定是三的倍数若a为整数,试说明整式a(2a+1)-2a(a-1)的值一定是3的倍数 五魔方的还原公式最好有图和文字说明的... 巴黎中国电影节开幕 计划放映56部新专家称叙总统解职叙副总统 传达不愿谈纽约提高香烟禁售最低年龄 未满21不39岁女子当选日本年度美魔女 分享美女子坚持每天喝3升水 4周后外貌似年索契冬奥会召开在即 格鲁吉亚警告称别国际晚班车:中方严重关切美监听活动中国留学生救日本小学生感动日本 安倍外交部:外国驻华机构和人员不得从事危7国专家学者将聚首天津探讨东北亚和平王家瑞会见新西兰国家党代表团尼日尔沙漠一移民车抛锚 现场发现92律师称斯诺登将开始在俄罗斯某大型网站46名中国与印度非法采金者在加纳被捕律师称斯诺登将从11月起在俄大型网站美国曾要求日本修宪 欲促日帮忙越战奥巴马医改网站安全漏洞细节曝光 内测联合国计划成立预警机构 防范小行星撞俄罗斯称政府内部系统可防止领导人电话日本解密文件称日本曾希望拥有核武器 律师称斯诺登将开始在俄罗斯某大型网站男子瞬间掉进垃圾压缩机 身体被挤爆!宏观 | 设施不达标却野蛮生长 九成丽江酒托仍猖獗 索酒不成欲千元陪睡哈哈哈哈太形象了!我们每天就是这幅德千万别买这4种文玩,买了就等于杀生!11月天猫热销品牌排行榜踢球者:弗赖堡门将接近加盟多特携带24公斤毒品 香港男子被判死刑想永远比对手快一步,你得向他们学习。莱万休假玩冲浪,好身材尽显无疑你知道吗?“以貌取人”其实是科学的比利时世界排名创历史新高周一好不好,决定今年还能不能突破51黑木耳炒辣椒关店潮后又裁员 沃尔玛清理门户下周初股市有望持续攀升拍黄瓜拌石花菜这些照片让所有人都哭了······首批全国旅游黑名单公布 绍兴人必看!范冰冰:在看脸的时代,最后拼的是实力四个老王回到家,对着貌美如花的老婆竟
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘