Delphi VCL стили учебник - как изменить стиль во время выполнения

есть ли хороший учебник по стилям VCL, где мы видим, как динамически (во время выполнения) загружать/изменять стиль ?

Это должно работать с Delphi XE2 и выше, так как XE2 является первой версией со стилями VCL.

4 ответов


я добавляю ответ, потому что локальная информация часто предпочтительнее просто ссылок.

вот ключевые факты, которые вы должны знать, прежде чем начать:

  1. многие элементы управления VCL имеют свойства цвета, но эти свойства будут игнорироваться, когда стили включены, а "общие элементы управления" по умолчанию, такие как кнопка, будут нарисованы самим Delphi, а не с помощью стиля XP или Windows 2000, который " поставляется с Windows."

  2. как-то, глубоко в вашем приложении, стили VCL помещают крючки, которые берут на себя покраску ваших элементов управления. Все, что он может обрабатывать, будет нарисовано с помощью "кожи" поверх обычных элементов управления. Многие люди называют это "снятие кожи с vcl", и до стилей VCL вы могли найти стороннюю систему кожи. Теперь он встроен.

  3. все, что не зацепило, все равно получит обычный стиль. Так большинств третья сторона элементы управления и некоторые биты VCL не будут тематическими. Не ждите идеальных мгновенных результатов. Кроме того, вы можете иногда видеть некоторые мгновенные мерцания или сбои в результате снятия кожи, что и следовало ожидать. Добавьте загрузку стилей во время выполнения,и конечное качество вашего результата-это догадка. Вы не можете гарантировать, что стиль, загружаемый во время выполнения, будет содержать все, что вы захотите. Также вы не можете гарантировать, что с одним Вы статически включить в приложение, но, по крайней мере, те, которые вы статически включаете, могут быть проверены вашей командой QA (которая может быть вами).

и вот самые простые шаги, чтобы начать работу: на самом деле только Шаг #2 через #4 необходимы.

  1. щелкните файл - > создать - > проект форм VCL.

  2. щелкните правой кнопкой мыши параметры проекта на панели диспетчер проектов и выберите Свойства. Перейдите к приложению - > внешний вид

  3. клик на собственный стиль, чтобы включить его. (Amakrits является первым в моем списке, поэтому я нажму на это).

  4. нажмите на combobox стиля по умолчанию и измените его на что-то другое, чем по умолчанию.

  5. положите что-то на форму, чтобы она не была пустой. (Кнопка, список и т. д.).

  6. выполнить приложение.

enter image description here

Теперь современные вещи: изменить свой стиль во время выполнения:

Я использую эту кнопку нажмите и formcreate, чтобы сделать это:

добавить fdefaultStyleName:String; в личный раздел вашей формы.

убедится Vcl.Themes находится в вашем предложении uses.

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Assigned(TStyleManager.ActiveStyle) and (TStyleManager.ActiveStyle.Name<>'Windows') then begin
   TStyleManager.TrySetStyle('Windows');
 end else begin
   TStyleManager.TrySetStyle(fdefaultStyleName); // whatever was in the project settings.
 end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if Assigned(TStyleManager.ActiveStyle) then
  fdefaultStyleName := TStyleManager.ActiveStyle.Name;

end;

см. домашнюю страницу RRUZ для множества вещей о стилях VCL.

вот основная демонстрация, где вы можете загрузить пару стилей динамически:знакомства-в Delphi-XE2 в-в VCL-стили-часть-я


лучшим источником информации о стилях VCL является Родриго РУз блог: http://theroadtodelphi.wordpress.com/category/vcl-styles/


пример (общественный порядок). Помните, использует Vcl.Темы;

procedure TData.AllowSKIN( bSKIN:boolean );
var
    sSKIN:string;
begin
    sSKIN := 'Aqua Light Slate';
    if not bSKIN then sSKIN := 'Windows';
    TStyleManager.TrySetStyle( sSKIN );
end;