引言:
时常想,如果一个组件能够按自己想要的外观显示,那该是件多么COOL的事啊,这一篇就要来做一个精美外观的组件,但是,做什么好呢.Button?高手突破>有关于自己定义外观的Button,以及CheckBox等的做法,Button从CustomPanel继承,重载Paint方法来画外观.如果...
摘要:
这将是最后一个组件了,目标定为非可视化,事实上非可视化组件要比可视化组件难做,因为是从tcomponent继承而来,就没有了很多属性和事件。而这些都要我们从头来做过。这个非可视化组件,我决定为托盘组件,其中用到的技术较多,我不如列一个表出来,然后再来讲解好一点。另外,可能篇幅会多一些,请耐心看。用到的技术:1作为核心功能,当然是托盘的应用啦。2?托盘组件怎么样影响到主窗口最小化时隐藏3?托盘如何......
摘要:
1.规范简介
本规范主要规定delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2.单元的格式
2.1 基本要求
2.1.1 缩进
缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。......
组件制作之四(定制外观)
时常想,如果一个组件能够按自己想要的外观显示,那该是件多么cool的事啊,这一篇就要来做一个精美外观的组件,但是,做什么好呢.button? 高手突破>有关于自己定义外观的button,以及checkbox等的做法,button从custompanel继承,重载paint方法来画外观.如果你有兴趣,可以去找来看,这里就不做button了,做一个memo如何呢.?是个不错的主意. 【程序编程相关:
插件管理框架 for Delphi(二)】 【推荐阅读:
简易对象垃圾回收框架 for Delph】 【扩展信息:
建立、读取、存贮INI文件的方法《一》】 我们先起个名字叫做tcoolmemo.以上篇已经讲了很多组件的技术,这里就只说出几个重点.其余不多说了. 首先,该memo从custommemo继承,它有这样外观:属于平面的,边框是可以设置颜色的线,对应的颜色变量为fedgecolor,另外,离边框以内的两个象素处,还有另一个框,当鼠标进入memo时,这个框会显示,当鼠标离开时,为个框消失,同样也可以设置颜色,对应变量为fentercolor. 那么鼠标进入与离开怎么判断呢,这里memo将截获两个delphi的内部消息: //下面两个获得delphi的内部消息,鼠标进入与离开时发生 procedure cmmouseenter (var message: tmessage); message cm_mouseenter; procedure cmmouseleave (var message: tmessage); message cm_mouseleave; 其实父类已经截获了这两个消息,并作了相应处理,所以tcoolmemo中的消息处理函数要 inherited;再作自己的处理.这里又用到了一个变量 mousein:boolean;//标识鼠标是否进入组件 接下来tcoolmemo还要截获两个消息: procedure wmpaint (var message: tmessage); message wm_paint; procedure wmnccalcsize (var message: twmnccalcsize); message wm_nccalcsize; 第一个很熟悉,当需要重画时,触发该消息, 第二个是当窗体需要计算位置与尺寸时触发,消息中包含了窗口客户区的大小,我们用这个的目的主要是将客户区缩小三个象素,以便画组件时不会画到客户区. procedure tcoolmemo.wmnccalcsize (var message: twmnccalcsize); begin inherited; inflaterect(message.calcsize_params^.rgrc[0], -3, -3); end; 而上面几个消息处理函数,cm_mouseenter与cm_mouseleave;将引起tcoolmemo的外观变化,wm_paint保存其外观不被擦去.所以要用到一个画组件的函数,即: drawborder; 里面用到了几个api的gdi函数.我在代码中有详细的说明,加上自己看帮助,应该是可以看懂的. 另外,相比于memo,它的扩展了这样的功能:设置边距与获得光标的位置.这两个对应的性属为margin,position.他们都是public的,不可以在对象察看器中看到. 我们一个个来说 ...
下一页 摘要:
一直都听说delphi中画布使用简单方便。现在我就利用画布实现一个简单的树机构的图形表示。系统支持节点选择、移动、保存树、打开树等。为了实现的方便用到了递归与指针,虽然效率有点问题但是在快速解决问题还是蛮好的。
程序写的比较乱,欢迎交流:sss@pacia.com.cn
源代码如下:
unit u_tree;
interface
uses windows, messages, ......