Delphi著名皮肤控件库横向对比

概述:对目前DELPHI市场上的皮肤控件都进行了一一测试,包括稳定性测试、内存泄漏测试、贴图效果测试、使用效率、皮肤界面五大项进行了一个横向的对比。

皮肤这东西很多人褒贬不一,有人认为程序做的好就行了,界面还是保持原生态来的稳定。的确,稳定是程序至关重要的一点,离开这点其他任何都无从谈起,但不可否认,无论是微软、苹果,还是大众用户,审美观越来越高,试想同样的QQ软件或者酷狗软件,功能稳定性相同,你是喜欢带皮肤漂亮的还是喜欢原生态的呢?因此,程序界面美化也是一个产品非常重要的一点。

做皮肤其实是项浩大的工程,从美工设计、到贴图、到程序设计,都非常的麻烦,如果不是一个非常成熟的产品且有很大的用户群体,并且公司具有相当实力,一般都不会去自己做皮肤,毕竟涉及的东西太多,一旦出现问题,那将对软件本身带来无法预计的后果。

因此我选择使用成品皮肤库在现有的软件上,在使用前为了在效果和稳定性上达到平衡,因此对目前DELPHI市场上的皮肤控件都进行了一一测试,包括稳定性测试、内存泄漏测试、贴图效果测试、使用效率、皮肤界面五大项进行了一个横向的对比,以便给正在准备使用皮肤的朋友一些参考。

这次选择的产品都是“著名”控件包,为什么加上“著名”二字,这个是有道理的,皮肤这东西用上后直接影响到程序的运行,后续维护一定要有保障,试想你用了一个皮肤控件,没有后续的保障,遇到BUG没人修正,你又没有源代码的情况下,除了换皮肤控件外没有任何办法。因此著名的DELPHI控件的标准是,有正规公司或个人运作,保持持续更新,遇到问题反馈后能得到响应的控件包。

这次参与测试的控件包包含了:AlphaControls、BusinessSkinForm、DynamicSkinForm、VCLSkin和AppFace 五个,我也测试过网上能找到的一些其他控件,但其长期不更新因此直接淘汰。在控件包方面,国外的产品比国内的强的太多,拿一款QQ界面控件包来说(这里不直接指明),控件BUG成堆,甚至连最起码的界面重绘、刷新和内存泄漏都没做好,这样的产品尽然也拿出来卖钱,而发现没人购买后,作者以免费名义发布控件,但不包含源代码后,近一年多都没更新过一次,你发现BUG提交给他,他就让你买源代码,价格2000-5000不等,这样的控件包建议大家连用都不需要用,直接PASS,以免做很多徒劳的事。

这几个控件包除了AppFace外都提供的DEMO程序,除了AppFace外都是以Delphi组件形式提供的,而AppFace是DLL方式提供。

下表上概括了几个界面控件包的特点:

  使用便利性 稳定性 内存泄漏测试 贴图效果测试 使用效率 皮肤界面
AlphaControls 便利 一般 有泄漏 很好 精致
BusinessSkinForm 便利 无泄漏 一般 一般
DynamicSkinForm 便利 无泄漏 一般 一般
VCLSkin 便利 一般 有泄漏 一般 一般 一般
AppFace 便利 无泄漏 一般 一般

下面详细介绍下这几个界面包测试时候遇到的问题。

一、AlphaControls

最早测试的是AlphaControls,版本是最新的7.54 LITE EDITTION,说实在的,从界面效果来说,AlphaControls无疑是这几个界面包里面最好的,也是最精致的,同样提供了超过60种皮肤,而且在不断增加,贴图效果也是最好的。测试过程发现内存有轻微泄漏,主要集中在几个控件上,这个问题不大。但窗口标题后面经常出现一些像乱码的字符,这个让人很不舒服,原本以为是7.34版本的问题,结果更新到官方最新的7.54免费版后,还是有这个问题。但这些都可以忽略,最为重大的BUG是界面最小化后,恢复时经常会导致死机,注意是死机,并不是应用程序无响应,这时候除了按硬启动外没有任何办法。我原本以为是机器的问题,更换机器换使用官方DEMO,依然发现这个严重的问题。但该问题并不是每次都会出现,基本出现率在1/20样子。但这个问题不可谓不严重,导致死机是什么概念,真是让人无语。因此AlphaControls也是第一个被淘汰,且最不舍的控件包,希望以后的新版本可以解决这个问题。(看官方更新历史记录,曾经更新过这个问题,但似乎没有彻底修正)

二、AppFace

第二个测试的是AppFace(下载地址),这是个轻量级的皮肤控件,使用来说相当简单,加载个DLL即可,可以说不用对程序进行任何调整。提供的界面包比较少,皮肤也不怎么精致。但内存泄漏控制的很好。在测试过程,先用了一个简单的小软件加载做测试,没有什么问题,然后拿出我以前写的一个类似记事本的程序,这时候发现,加载AppFace后,软件尽然启动报错,为了确认是否是软件问题,我特意拿了一款开源程序(做脚本编辑的),结果发现一样的情况发生了。无奈只好PASS。

三、BusinessSkinForm和DynamicSkinForm

第三个测试的是BusinessSkinForm和DynamicSkinForm,这两个控件包可以说是孪生兄弟,因为是由一家公司开发的,DynamicSkinForm比BusinessSkinForm少了数据感知控件,不做数据库程序,没什么区别,界面皮肤包也是通用的,而且多达170多种。但说实话,精致度还不够高,但已经很好了。我们发现它还提供了很多新颖的界面设计组件,可以设计出非常具有特色的界面。在测试中均使用厂家提供的标准DEMO,内存无泄漏情况,这点难能可贵,毕竟是这么大型的控件包。贴图效果也算过得去,但和AlphaControls比还是稍显逊色。虽然提供的界面皮肤包多达170多种,但精致的还是有限,因此可以选择性的找一些皮肤发布。使用效率来说,如果窗口不使用动画效果,显示速度会比较快,但界面切换有闪烁情况。如果使用动画效果,使用效率就低了很多了,给人一种漫不经心的感觉。这两个控件在测试的两天中,发现稳定性很好,没有发送死机、无响应和自动退出这些情况。

四、VCLSkin

最后测试的是老牌VCLSkin(下载地址),这套控件包使用非常方便,提供的皮肤包也多,内存泄漏控制的也不错,使用效率很高,界面虽谈不上精致,不过也还说的过去。稳定性也还不错,比起早几年使用的时候,稳定性要提高很多,但在测试过程中还是发生了两次异常报错的问题。因此看来稳定性还有提高的空间。

通过测试后,我选择了BusinessSkinForm这套控件包,虽然效率不是最高,界面不是最精致,但贵在稳定。截至文章发布前,这组控件包仍然在跑测试,没发生任何意外。

你可能感兴趣的:(Delphi著名皮肤控件库横向对比)