delphi xe2之后自带了皮肤,已经满足基本的界面美化需求,以下是调用方法:
引用Vcl.Themes单元
私有变量 vThemes: string;
窗口创建事件
var
s: string;
list: THashedStringList;
vThemes := vIni.ReadString('Configure', 'Skins', 'Luna');
list := THashedStringList.Create;
try
list.Sorted := true;
list.AddStrings(TStyleManager.StyleNames);
for s in list do
if (s <> 'Luna') and (s <> 'Windows') then
begin
vItem := TMenuItem.Create(nil);
vItem.Caption := s;
vItem.OnClick := V1Click;
N12.Add(vItem);
end;
finally
list.Free;
end;
for i := 0 to N12.Count - 1 do
N12.Items[i].Checked := N12.Items[i].Caption = vThemes;
TStyleManager.SetStyle(vThemes);
换肤菜单:
procedure TfrmMain.V1Click(Sender: TObject);
var
i: integer;
begin
vThemes := TMenuItem(Sender).Caption;
for i := 0 to N12.Count - 1 do
N12.Items[i].Checked := N12.Items[i].Caption = vThemes;
TStyleManager.SetStyle(vThemes);
vIni.WriteString('Configure', 'Skins', vThemes);
end;
加载文件方法
var
dir, fileName, styleName: string;
// 样式文件 *.vsf
dir := GetEnvironmentVariable('Delphi') + '\Redist\styles\vcl';
for fileName in TDirectory.GetFiles(dir, '*.vsf') do
TStyleManager.LoadFromFile(fileName);
for styleName in TStyleManager.StyleNames do
ListBox1.Items.Add(styleName);