做皮肤其实是项浩大的工程,从美工设计、到贴图、到程序设计,都非常的麻烦,如果不是一个非常成熟的产品且有很大的用户群体,并且公司具有相当实力,一般都不会去自己做皮肤,毕竟涉及的东西太多,一旦出现问题,那将对软件本身带来无法预计的后果。
比较出名的有AlphaControls、BusinessSkinForm、DynamicSkinForm、VCLSkin和AppFace
五大项
|
使用便利性 |
稳定性 |
内存泄漏测试 |
贴图效果测试 |
使用效率 |
皮肤界面 |
AlphaControls |
便利 |
一般 |
有泄漏 |
很好 |
高 |
精致 |
BusinessSkinForm |
便利 |
好 |
无泄漏 |
一般 |
高 |
一般 |
DynamicSkinForm |
便利 |
好 |
无泄漏 |
一般 |
高 |
一般 |
VCLSkin |
便利 |
一般 |
有泄漏 |
一般 |
一般 |
一般 |
AppFace |
便利 |
差 |
无泄漏 |
一般 |
高 |
一般 |
最后我选了比较精致的AlphaControls,进行测试:
下面是它的下载地址:
慧都控件网有下载!!!
unit SkinChange;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, sSkinManager,
Vcl.StdCtrls, sButton,
Vcl.ExtCtrls, sSkinProvider,sConst, sDefaults,
Vcl.Menus;
type
TForm2 = class(TForm)
sSkinManager1: TsSkinManager;
Button1:
TButton;
GroupBox1: TGroupBox;
Button2: TButton;
Timer1: TTimer;
sSkinProvider1: TsSkinProvider;
procedure
FormCreate(Sender: TObject);
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
private
{ Private
declarations }
public
end;
var
Form2: TForm2;
List:TStringList;
i:integer=0;
implementation
{$R *.dfm}
procedure
TForm2.Button1Click(Sender: TObject);
begin
if i>0
then
begin
i:=i-1;
sSkinManager1.SkinName :=
List[i];
end;
end;
procedure
TForm2.Button2Click(Sender: TObject);
begin
if
i<List.Count then
begin
i:=i+1;
sSkinManager1.SkinName :=
List[i];
end;
end;
procedure TForm2.FormCreate(Sender:
TObject);
begin
List :=
TStringList.Create;
sSkinManager1.GetSkinNames(List);
end;
end.
delphi XE5皮肤的使用,布布扣,bubuko.com
delphi XE5皮肤的使用
原文:http://www.cnblogs.com/lingzhiwen/p/3643629.html