AlphaControls使用心得

用过的皮肤控件很多,但这个控件我看来是比较炫的,关键在于它不仅支持多窗口换肤,还支持Alpha通道,色调偏差,饱和度;图标还支持PNG矢量放大,缩小。还有好多特性,大家有空看看帮助吧。

安装
我用过AlphaControls 6.44和7.04两个版本,解压后会发现每个DELPHI和BCB版本都有单独的目录,安装和普通控件的安装没有两样,需要注意,要先删除旧版本后再装。但我发现一个问题,就是DELPHI

和BCB(codegear 2009)没法同时装这个控件,我一般先在BCB下安装,再想在DELPHI下用,就报错提示已经安装了。在设计时,无法看到控件,但打开相关代码没有问题,可以用拷贝BCB控件的办法在

DELPHI下使用,效果是一样的。还有,不同控件版本之间无法平滑移植(起码我碰到的情况是这样),这个问题真没办法,所以只能期望你使用的是高版本了。

使用
安装后,会看到它有三个面板,alphaStandard alphaAdditional alphaTools,这三个面板中的控件基本够我们构造界面用的了。
下面介绍的都是7.04中的属性

alphaTools面板
首先需要使用alphaTools中的TsSkinManager控件,拖入后,设置SkinDirectory目录为皮肤的绝对路径,然后就可以再SkinName中选择不同的皮肤了;也可以设置InternalSkins,将已有皮肤直接添加到

控件中形成内部皮肤,这样就不用带着皮肤发布了。再介绍几个常用属性,Active 激活属性,这个就不说了;ExtendedBorders 是否扩展边框,可以让外围框架看起来更明显一些;HueOffset 色调偏差

0-360;Saturation 饱和度0-100;SkinningRules 换肤规则。

AnimEffects这个属性最炫了,你可以在这里设置移动时窗体透明度;Buttons特效的规则;窗体和对话框SHOW和HIDE时的特效等等,大家可以自己多设置一下,看看效果。

sSkinProvider1也是个比较重要的控件,拖入后,可以设置一些特效的开关(我研究不多),TitleButtons这个属性可以设置标题按钮,你可以在这里添加按钮,然后通过弹出窗体来实现皮肤及属性的

动态设置,就和FOXMAIL的换肤界面效果一样了。不过FOXMAIL中有个亮度的属性,我还不清楚是设置的什么?还请高手们赐教!

这个面板中还有个Magnifier控件也很炫,可以直接实现放大镜效果,style选amsLens。代码很简单Execute()和Hide()就完了。

alphaStandard面板
这里都是些标准VCL控件的继承,大家看看都很简单,主要就是设置SKINDATA中的SkinSection属性;可以变化出很多效果;还要注意有的控件有BoundLabel属性,挺好的,可以外挂一个LABEL,方便界面

布置。

alphaAdditional面板
这里都是些高级控件扩展,比如日期控件,计算器控件,颜色选择控件,字体控件等等;FrameLookBar是个很好的界面控件,一般实现导航栏功能,并且可以自动隐藏,鼠标重入后自动显现;

好了,写了一早上,放两个图吧,大家看看效果:

框架效果

色调变化

最后,说一个问题,请有经验的大虾们赐教

DLL中的FORM无法继承皮肤,我上了AlphaControls论坛,里面也有人遇到这个问题,说解决方案是勾选build with run time package 并选择运行时库(带R)的,可我按照它的设置没有效果;另外我发

现只要是窗口(无论是否在DLL中)的BorderStyle为bsnone,就不可以继承皮肤了,这使得框架设计不好复用,我希望外围框架使通用独立的。它的例子中都是用FRAME,不过我试过好像也不行。



发表评论

您的电子邮箱地址不会被公开。

13 + = 18