2011-12-23 4 views
5

У меня есть приложение, написанное на delphi-xe2, теперь я добавляю поддержку стилей VCL, поэтому я хочу создать меню, чтобы выбрать файл стиля vcl для загрузки и применения, эта часть работает нормально, меню встроено в runtime, основанный на содержимом папки с файлами стиля. Но теперь я хочу, чтобы отобразить имя стиля VCL вместо файла так же, как это изображениеКак получить имя стиля файла vsf (файл стиля VCL)?

enter image description here

Как я могу получить имя стиля файла VCL стиля?

ответ

11

Вы можете использовать функцию 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.