快讯
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅
- 游泳也需音乐相伴!韶音OpenSwim Pro评测
- 又一款轻量化电竞
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!
- 更适合新手体质的枪战游戏,《无畏契约》开战!
- 现代与传统的融合之旅:贝尔金笔记本扩展坞体验
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测
- 有颜有实力的外设谁能不爱?来看雷柏商超巡演
- 新潮外设引爆全场!雷柏联合PC打造潮品酷玩趴
- 幻彩绚丽,玩趣十足!雷柏V700DIY键盘图赏
- U皇就该配板皇,超频玩家现身说法教你选主板
- 13代酷睿的超频利器,有好板才有好性能
- 全新升级,雷柏V20S RGB光学游戏鼠标2023版详解
- 马斯克30亿放“烟花”,民航故事为何值钱?
- 让露营生活更精致!铂陆帝户外电源AC180评测
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂
- HiFi级音响用料 仙籁 N8音响专用交换机售2980元
- 微星MPG Z890I EDGE TI WIFI 刀锋 钛评测:14 层 PCB 加持,同级之中强无敌!29日
- 打造低调而卓越的Ai PC,微星MEG Z890 ACE战神主板开箱10日
- 解密“星”制造,微星深圳恩斯迈工厂探秘之旅02日
- 游泳也需要音乐相伴!韶音新一代游泳耳机OpenSwim Pro评测12日
- 又一款轻量化电竞"神鼠"来袭!玄熊猫3395游戏鼠标今晚首发149元10日
- 元气满满的充电之旅!铂陆帝商超活动嗨翻周末27日
- 雷柏机甲编码主题系列警戒线S-07图赏:以机械美感诠释潮流新理念桌搭!24日
- 更适合新手体质的枪战游戏,《无畏契约》国服正式开战!20日
- 玩物近话论:现代科技与甘南秘境的融合之旅 贝尔金笔记本扩展坞体验14日
- 航天品质下的极速充电体验——航嘉G65 GaN快速充电器评测12日
- 有颜有实力的外设好物谁能不爱?雷柏点燃PCGROUP潮品商超巡演15日
- 新潮外设好物引爆全场!雷柏联合PCGROUP打造潮品酷玩趴15日
- 幻彩绚丽,玩趣十足!雷柏V700DIY热插拔机械键盘图赏10日
- U皇就该配板皇,超频玩家现身说法教你选主板26日
- 13代酷睿的超频利器,有好板才有好性能25日
- 全新升级 经典复刻 雷柏V20S RGB光学游戏鼠标2023版详解25日
- 马斯克30亿放“烟花”,民航故事为何值钱?23日
- 告别电量焦虑,让露营生活多一分精致!铂陆帝户外电源AC180开箱评测17日
- 惠威音响体验:音响中的艺术品,拥有好听的灵魂04日
- HiFi级音响用料 仙籁 N8音响专用交换机售2980元27日
Delphi控件,我们也可以(2)
2004-02-14 09:34 出处:PConline 作者:刘鑫 责任编辑:zwg
实践第一步——分析和设计 Delphi为我们提供的组件中,有一个Label控件,它完成了最基本的单行文本标签功能。不过它的功能实在是太有限啦,总是在那里灰不溜秋地趴着。现在我们给它增加点动态效果,让它成为一个可以在鼠标经过时改变外表的标签——TouchLabel。也就是说,在Label的基础上,我们要给它添加几个属性,使鼠标经过时,标签的的文字效果会变为我们指定的样子。那么,我们要扩充的功能分为以下几部分: 1、两个属性及其对应的属性编辑器,为它指定MouseMoving时的背景色和前景色。 2、在鼠标经过标签上时,改变标签的外观。 3、鼠标移出后,把外观改为原来的样子。 分析这三个功能,需要用到以下的技术: 自义属性,事实上把属性定义为Publish类型,并为它指定对应的Read和Write方法,它就会出现在属性编辑器中。现在我们把这两个属性命名为TouchBKColor和TouchFont。现在看一下我的属性定义: property TouchBKColor : TColor Read GetTouchBKColor Write SetTouchBKColor stored isStoreTouchBKColor default clWindow; property TouchFont : TFont Read FTouchFont Write SetTouchFont stored isStoreTouchFont; stored是标识这个属性是否要保存在程序的.dfm中以做持久化,通常它由一个返回值为 Boolean 类型的函数来控制。这里是isStoreTouchBKColor 和isStoreTouchFont。而default是用来为这个属性指定一个默认值。另外,我还定义了一个属性来判断是否需要让这个Touch功能生效。就是 property ChangeWhileTouch : Boolean Read isStoreTouchFont Write isStoreTouchFont default True; 这些代码并不复杂,我直接将它们附在后面,在这里就不多占篇幅了。只有两点要指出,一个是在属性本身的Read和Write方法中不可以对属性本身进行读写,否则会引起无穷递归。还有一个是属性本身不保存信息,通常的做法是在读写方法中操作某一私有字段。 “事件”响应,这不是平时我们所用的事件响应,而是为鼠标进出控件编写对应的代码。在VCL和CLX中,采用的是不同的方法。VCL的消息体系和Windows的消息体系比较接近,我们要找出鼠标进出控件的消息,写对应的消息响应代码。而CLX是基于著名的C++跨平台类库QT开发的。所以它采用的是QT的信号——槽机制。好在CLX可视控件的基础类TControl为我们封装了MouseEnter和MouseLeave,我们只要重载这两个成员方法,写上我们自己的代码。而在VCL和CLX的TouchLabel组件中,这些代码完全通用。方法载很简单,我介绍一下消息响应。 |
键盘也能翻页,试试“← →”键
最热搜索
无线路由器怎么用 会说话的汤姆猫电脑版 12306网上订火车票 跳舞吧 flash player 下载 PP助手电脑版 Adobe Reader(pdf阅读) iOS6正式版12项新功能 QQ空间克隆器 9158视频KTV 植物大战僵尸辅助工具 Win8怎么关机 QQ空间进不去 2013年春节是几月几号 QQ昵称 QQ空间皮肤 PPT模板 电脑输入法不见了怎么办 2012中秋节是几月几日 word安全模式 qq输入法怎么点亮 IE修复 感恩节是几月几日 CSS布局 PS快捷键 Outlook设置 声卡驱动器官方免费下载 格式工厂怎么用 桌面图标有阴影怎么去掉 Windows RT是什么意思 2013年日历设计 Word打不开怎么办 Win8专区 腾讯微云网 windows8激活工具 剑灵什么时候公测 QQ通讯录怎么用 开心斗地主 拖拉机小游戏 麻将游戏 中国象棋 德州扑克 黄金矿工中文版 保皇扑克游戏 四国军棋 万圣节是几月几日 ps抠图教程 12306订票助手 万圣节小游戏大全 rar文件怎么打开 Photoshop CS6教程 iOS6完美越狱 QQ个性签名