unit LoadDevSkin;
interface
uses Windows, Classes, SysUtils, Forms, Menus, dxSkinsForm, dxSkinsCore,
cxGraphics, cxControls, cxLookAndFeelPainters, cxStyles, cxCustomData,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid;
type
TDevSkinUtils = class
private
class procedure OnSkinMenuClick(Sender: TObject);
public
class procedure LoadSkin;
end;
implementation
uses
dxSkinsDefaultPainters;
const
CSKINFILE = 'AllSkins.dll';//Dev的完整皮肤文件,修改了文件名称
class procedure TDevSkinUtils.OnSkinMenuClick(Sender: TObject);
var
sSkinFile, sSkinName: string;
begin
sSkinFile := ExtractFilePath(ParamStr(0)) + CSKINFILE;
sSkinName := StringReplace(TMenuItem(Sender).Caption, '&', '', [rfReplaceAll]);
sSkinName := StringReplace(sSkinName, ' ', '', [rfReplaceAll]);
//TdxSkinController(Application.MainForm.FindComponent('dxSkinController1')).SkinName := 'UserSkin';
dxSkinsUserSkinLoadFromFile(sSkinFile, sSkinName);
end;
class procedure TDevSkinUtils.LoadSkin;
var
dxSkinController1: TdxSkinController;
pmSkins: TPopupMenu;
procedure LoadDevSkins;
var
sSkinFile: string;
oList: TStringList;
i: Integer;
oMenuItem: TMenuItem;
begin
sSkinFile := ExtractFilePath(ParamStr(0)) + CSKINFILE;
dxSkinsUserSkinLoadFromFile(sSkinFile, '');
dxSkinController1.NativeStyle:=False;
dxSkinController1.UseSkins:=True;
dxSkinController1.SkinName := 'UserSkin';
oList := TStringList.Create;
try
dxSkinsUserSkinPopulateSkinNames(sSkinFile, oList, True);
for I := 0 to oList.Count - 1 do
begin
oMenuItem := TMenuItem.Create(pmSkins);
oMenuItem.Caption := oList[i];
oMenuItem.OnClick := OnSkinMenuClick;
pmSkins.Items.Add(oMenuItem);
end;
finally
oList.Free;
end;
end;
begin
dxSkinController1 := TdxSkinController.Create(Application.MainForm);
pmSkins := TPopupMenu.Create(Application.MainForm);
Application.MainForm.PopupMenu := pmSkins;
LoadDevSkins;
end;
initialization
TDevSkinUtils.LoadSkin;
end.