【发布时间】:2012-01-26 23:55:29
【问题描述】:
我有一个用 delphi-xe2 编写的应用程序,现在我正在添加 VCL 样式支持,所以我想构建一个菜单来选择要加载和应用的 vcl 样式文件,这部分工作正常,菜单已构建在运行时基于具有样式文件的文件夹的内容。但现在我想像这张图片一样显示 vcl 样式的名称而不是文件名
如何获取 vcl 样式文件的样式名称?
【问题讨论】:
标签: delphi delphi-xe2 vcl-styles
我有一个用 delphi-xe2 编写的应用程序,现在我正在添加 VCL 样式支持,所以我想构建一个菜单来选择要加载和应用的 vcl 样式文件,这部分工作正常,菜单已构建在运行时基于具有样式文件的文件夹的内容。但现在我想像这张图片一样显示 vcl 样式的名称而不是文件名
如何获取 vcl 样式文件的样式名称?
【问题讨论】:
标签: delphi delphi-xe2 vcl-styles
您可以使用TStyleManager.IsValidStyle 函数,传递TStyleInfo 记录,该记录返回此信息以及与vcl 样式相关的另一个信息。
查看此示例应用
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
Vcl.Styles,
Vcl.Themes;
var
Style : TStyleInfo;
begin
try
if TStyleManager.IsValidStyle('C:\Users\Public\Documents\RAD Studio\9.0\Styles\RubyGraphite.vsf', Style) then
begin
Writeln(Format('Name %s',[Style.Name]));
Writeln(Format('Author %s',[Style.Author]));
Writeln(Format('Author EMail %s',[Style.AuthorEMail]));
Writeln(Format('Author URL %s',[Style.AuthorURL]));
Writeln(Format('Version %s',[Style.Version]));
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
readln;
end.
【讨论】: