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);