AlphaControls 控件Delphi使用
一、AlphaControls初始化(MainFrm加入AlphaControls)
1、制定ini文件
procedure WriteIni_Skin; // 保存皮肤参数
var ini:tinifile;
begin
ini:=TIniFile.Create(INIPath+'Config.INI');
ini.WriteBool( 'skin','AlphaSkinDo',AlphaSkinDo);
ini.WriteString( 'skin','AlphaSkinPath',AlphaSkinPath);
ini.WriteString( 'skin','AlphaSkinFile',AlphaSkinFile);
ini.Free;
end;
procedure ReadIni_Skin; // 读取皮肤参数
var ini:tinifile;
begin
ini:=tinifile.Create(INIPath+'Config.ini');
AlphaSkinDo:= ini.ReadBool('skin','AlphaSkinDo',True); // 执行换肤
AlphaSkinPath:=ini.ReadString('skin','AlphaSkinPath','D:\养老机构信息系统_Client\Skins'); // 换肤目录
AlphaSkinFile:=ini.ReadString('skin','AlphaSkinFile','iOS4'); // 换肤文件
ini.free;
end;
[skin]
AlphaSkinDo=1
AlphaSkinPath=D:\养老机构信息系统_Client\Skins
AlphaSkinFile=Winter2011
2、MainFrm.creat事件
ReadIni_Skin; // 读取皮肤参数
if AlphaSkinDo then
begin
sSkinManager1.SkinDirectory:=AlphaSkinPath; // 皮肤目录
sSkinManager1.SkinName:=AlphaSkinFile; // 皮肤文件
sSkinManager1.Active := True;
end;
3、sSkinManager1AfterChange事件
procedure TMainFrm.sSkinManager1AfterChange(Sender: TObject);
begin
MainFrm.Caption:=sMainName+' '+sSkinManager1.SkinName; // 皮肤文件
AlphaSkinDo:=True;
AlphaSkinPath:=MainFrm.sSkinManager1.SkinDirectory; // 皮肤目录
AlphaSkinFile:=MainFrm.sSkinManager1.SkinName; // 皮肤文件
WriteIni_Skin; // 保存皮肤参数
end;
二、皮肤换肤窗口
在系统参数窗口,加入TsSkinSelector控件
onChange事件:
procedure TGrfFrm.sSkinSelector1Change(Sender: TObject);
begin
MainFrm.sSkinManager1.BeginUpdate;
MainFrm.sSkinManager1.EndUpdate(True, False);
end;
三、加入动态换肤功能
在主窗口菜单中,加入“动态皮肤”项目:
On菜单项目事件
procedure TMainFrm.N6Click(Sender: TObject);
begin
if sSkinManager1.SkinName<>sSkinManager1.GetRandomSkin then
begin
sSkinManager1.SkinName := sSkinManager1.GetRandomSkin;
sSkinManager1.Active := True;
end;
end;
四、主窗口OnClose事件
procedure TMainFrm.FormClose(Sender: TObject; var Action: TCloseAction);
var S:string;
begin
DateTimetoString(S,'yyyy-MM-dd hh:nn:ss',now);
REC_List.ADD(S+' 退出“员工信息”模块');
UpLoad_REC(OperateName,Copy(S,1,10),Copy(S,12,8),REC_List.Text); // 上传 用户操作记录
AlphaSkinDo:=True;
AlphaSkinPath:=MainFrm.sSkinManager1.SkinDirectory; // 皮肤目录
AlphaSkinFile:=MainFrm.sSkinManager1.SkinName; // 皮肤文件
WriteIni_Skin; // 保存皮肤参数
end;
模拟AlterMetro 2016实际效果:
改进后的主窗口: