(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

VCL Styles - скины в Delphi XE2

Источник: delphilab
Snowy

В Delphi XE2 появился встроенный механизм скинов с названием "VCL Styles".

Если зайти в свойства проекта и выбрать Application -> Appearance, то мы увидим поле 'Custom Styles', в котором мы можем добавить стандартные стили, а также посмотреть, как они выглядят, при помощи кнопочки 'Preview'.

Application Apearance 

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

За работу со стилями отвечает класс TStyleManager, расположенный в модуле Themes . Данный менеджер стилей предоставляет следующие возможности:

  • Установить стиль
  • Загрузить стиль из файла
  • Загрузить стиль из ресурса

Все эти действия можно производить, как с объектом класса TStyleManager, так и непосредственно через методы класса. 

Для смены стиля предназначены команды SetStyle и TrySetStyle.

TStyleManager.TrySetStyle('Ruby Graphite', false);

Второй параметр у TrySetStyle - показывать ли сообщения об ошибке, если не удалось выбрать стиль.

Список зарегистрированных стилей содержится в массиве StyleNames.

Организовать смену стилей можно, например, с помощью ComboBox:

uses Themes;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  sm: TStyleManager;
  i: integer;
begin
  sm := TStyleManager.Create;
  for i := 0 to Length(sm.StyleNames)-1 do
    ComboBox1.Items.Add(sm.StyleNames[i]);
end;
 
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  TStyleManager.TrySetStyle(ComboBox1.Text, false);
end;

Загрузить стиль из файла поможет метод LoadFromFile.

function LoadStyle(FileName: string): string; // загрузить скин и вернуть его имя
var
  sm: TStyleManager;
  si: TStyleInfo;
begin
  result := '';
  sm := TStyleManager.Create;
  try
    if TStyleManager.IsValidStyle(FileName, si) then // взять информацию о стиле в si
    begin
      result := si.Name;
      if sm.Style[result] = nil then
         sm.LoadFromFile(FileName);
    end;
  finally
    sm.Free;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
begin
  s := LoadStyle('C:\Temp\Test.vsf'); // загрузить скин
  if s <> '' then // если не загрузили - то имени нет
  begin
    TStyleManager.TrySetStyle(s, false); // включить
    if ComboBox1.Items.IndexOf(s) < 0 
      then ComboBox1.Items.Add(s); // если нет в списке - добавить
  end;
end;

Через свойство Style можно получить стиль с указанным именем, или проверить его на существование, как в этом примере. Метод IsValidStyle позволяет определить, является ли файл стилем и, если да, то получить информацию о нём - название, автор, сайт автора и почта. Нам интересно только название.

Аналогично можно загрузить стиль из ресурса, при помощи TryLoadFromResource, в параметрах которого указать тип ресурса и имя. Но мне кажется более удобным следующий вариант:

  • Открываем меню Project -> Resources and Images.
  • Нажимаем кнопку Add.
  • В комбобоксе справа выбираем тип файла 'Any File'
  • Выбираем файл со стилем
  • В поле Resource Identifer пишем имя скина
  • В комбобоксе Resource Type пишем ручками: 'VCLSTYLE'
  • Повторяем данные действия для каждого файла-стиля.
  • Жмём Ок. Компилируем проект.

Add VCL Style

После компиляции все стили автоматически попадут в список по-умолчанию.

Где взять файлы со стилями? Хороший вопрос. Думаю, в скором времени появятся библиотеки стилей. В комментариях пишите, где можно взять готовые.

Для создания новых стилей существует специальный редактор. Находится он в меню Tools -> VCL Style Designer.

Я себе для тестов на скорую руку сляпал вот такой зелёненький.

Если вы создали свой стиль, или скачали где-то, и хотите, чтобы он появился в настройках проекта, то файл следует сохранить в папку C:\Documents and Settings\Public\Documents\RAD Studio\9.0\Styles

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
TeeGrid VCL/FMX Source Code single license
SAP® Crystal Reports 2016 WIN INTL NUL
DevExpress / DXperience Subscription
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Corel DRAW - от идеи до реализации
Новости мира 3D-ускорителей
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100