在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
http://mosir.org/html/y2012/dynamic-create-alphacontrols-in-the-delphi-project.html
AlphaControls是一套Delphi下的优秀的皮肤vcl控件。几年前,一般用得比较多的是vclskin,使用很方便,可惜这套2010年已经停止维护了。后来就看到更多的人开始推崇AlphaControls,即能让别家的控件激活皮肤效果,也可以只使用AlphaControls的控件。 为了方便自动编译、避免异地安装控件的麻烦和日后维护的方便,我们一般是把这个控件选定版本的源码放在项目源码中,通过动态创建的方式来使用这套vcl控件。 比如在delphi项目的源码目录src中,增加一个third目录存放第三方vcl控件,把AlphaControls的源码放到 src/third/ac目录下。在delphi项目的搜索路径中增加./third/ac,即可。
动态创建的代码:
好了,运行后发现空白窗体的皮肤效果已经出来了。但增加了TMemo等控件后,发现这些控件并没有被影响,还是原生界面。因为缺省除AlphaControls提供的同类控件外,其它的控件都属于第三方控件,得单独处理才能有皮肤效果。
再增加以下代码: // with skin.ThirdLists[ord(tpEdit)] do 注意,要查看效果请先去掉代码前的注释符号,这样,常用的Delphi控件就都会有皮肤效果了。 可能会注意到上面的代码都被注释掉了,因为我们其实可以更方便让通用第三方控件(对AlphaControls来说)自动具有皮肤效果。 把上面的支持第三方控件的代码去掉,找到./third/ac目录下的sDefs.inc文件,在 // << 3rdparty support start << 后增加一行:
保存后,重新编译,就会发现其实Delphi自带的控件就已经具有皮肤效果了。 当然,非官方的控件,还是需要通过类似上面的代码自己分类添加才会有效果。比如TVirtualStringTree,就得增加代码:
对于一些特殊的控件包,比如TntControls、DevExpress等,可以通过sDefs.inc进行设置进行支持。 在安装控件目录下 找到sDefs.inc 其中有DevExpress设置,修改设置
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论