Delphi自带皮肤的使用


本文整理自网络,侵删。

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

相关阅读 >>

Delphi多线程程序示例

Delphi简单判断程序30秒没有键盘和鼠标动作示例

Delphi版插apc杀进程驱动源码

Delphi�⒆执�传入到windows目前窗口cursor所在位置

Delphi 获取内核地址的简单方法

Delphi关于dbgrid和webbrowser的焦点问题

Delphi暴力关机代码

Delphi xe5获取android imei id

Delphi 禁用本地网络连接/启用本地网络连接

Delphi xe6 switch元件简繁问题

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...