转:看看 Delphi XE2 为 VCL 提供的 14 种样式
Posted 是蓝蓝的呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转:看看 Delphi XE2 为 VCL 提供的 14 种样式相关的知识,希望对你有一定的参考价值。
http://www.linuxso.com/linuxbiancheng/8889.html
其实只提供了 13 个 vsf 样式文件, 还有默认的 Windows 样式, 共 14 种. 在空白窗体上添加 ListBox1 等控件, 测试代码: uses IOUtils, Vcl.Styles, vcl.Themes; procedure TForm1.FormCreate(Sender: TObject); var dir, fileName, styleName: string; begin //VCL 的样式文件 *.vsf 在 X:\\Program Files\\Embarcadero\\RAD Studio\\9.0\\Redist\\styles\\vcl\\ dir := GetEnvironmentVariable(\'Delphi\') + \'\\Redist\\styles\\vcl\'; {载入所有 *.vsf 文件} for fileName in TDirectory.GetFiles(dir, \'*.vsf\') do TStyleManager.LoadFromFile(fileName); {将样式名称导入列表} for styleName in TStyleManager.StyleNames do ListBox1.Items.Add(styleName); end; {修改样式} procedure TForm1.ListBox1Click(Sender: TObject); begin TStyleManager.SetStyle(ListBox1.Items[ListBox1.ItemIndex]); end;
本人测试过程中发现问题:
1、至少要引用后两个 单元文件 uses IOUtils, Vcl.Styles, vcl.Themes;
否则如果只引用 vcl.Themes,编译可以通过,运行时异常“Unable to load style ***”。
2、并且公司控件:显示样式时,
TGQToolPanel更改不了样式,TGQToolButton显示不出来图片;
3、TfrmSystemSetting 设置窗体继承于TDrawForm时,使用样式后// unit uDrawForm;
无法关闭,无法拖动,只能用 Atl+F4解决关闭。
以上是关于转:看看 Delphi XE2 为 VCL 提供的 14 种样式的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 Delphi 组件中实现 Columns.Columns 属性