Показать сообщение отдельно
  #6  
Старый 20.06.2013, 08:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Используйте методы класса TStyleManager, конкретно
Код:
IsValidStyle(const FileName: string): boolean
этот просто для проверки валидности файла стилей, т.е. является ли файл из FileName стилем.

или
Код:
IsValidStyle(const FileName: string; var StyleInfo: TStyleInfo): boolean
более продвинутый вариант, не только проверяющий, но и возвращающий в StyleInfo основную информацию об этом файле
Код:
TStyleInfo = record
    Name: string;//наименование
    Author: string; //автор стиля
    AuthorEMail: string; //его email
    AuthorURL: string; //адрес сайта
    Version: string; //версия файла
  end;
Если файл успешно проверен то его можно загрузить и зарегистрировать в менеджере с помощью функции
Код:
LoadFromFile(const FileName: string): TStyleServicesHandle
Если стили хранятся в ресурсах проекта, т.е выбраны явно в менеджере ещё до сборки, то можно делать так
Код:
LoadFromResource(Instance: HINST; const ResourceName: string): TStyleServicesHandle

LoadFromResource(Instance: HINST; const ResourceName: string; ResourceType: PChar): TStyleServicesHandle

TryLoadFromResource(Instance: HINST; const ResourceName: string; ResourceType: PChar; var Handle: TStyleServicesHandle): Boolean
Последняя функция вернет True, если стиль успешно загружен из ресурсов.

После загрузки стили необходимо применить
Код:
TrySetStyle(const Name: string; ShowErrorDialog: Boolean): Boolean
где устанавливается стиль с именем Name, при успешном выполнении метод возвращает True. ShowErrorDialog указывает выводить ли сообщение об ошибке при неудаче, по умолчанию, true.

А чтобы узнать какой стиль сейчас используется, или какие стили доступны можно воспользоваться свойствами класса

ActiveStyle возвращает используемый в настоящее время стиль в оформлении.
IsCustomStyleActive возвращает True в случае, если используется стиль отличный от стиля Windows
Style возвращает объект стиля по его имени.
StyleNames возвращает список названий зарегистрированных стилей.
SystemStyle возвращает системный стиль, т.е. стиль Windows.

На семёрке это не действует, (нету стилей в D7 окромя AlphaControls:-) поэтому проверить нет возможности, но вроде источник надёжный, скопипащенному верить.
Ответить с цитированием