Delphi VCL стили учебник - как изменить стиль во время выполнения
есть ли хороший учебник по стилям VCL, где мы видим, как динамически (во время выполнения) загружать/изменять стиль ?
Это должно работать с Delphi XE2 и выше, так как XE2 является первой версией со стилями VCL.
4 ответов
я добавляю ответ, потому что локальная информация часто предпочтительнее просто ссылок.
вот ключевые факты, которые вы должны знать, прежде чем начать:
многие элементы управления VCL имеют свойства цвета, но эти свойства будут игнорироваться, когда стили включены, а "общие элементы управления" по умолчанию, такие как кнопка, будут нарисованы самим Delphi, а не с помощью стиля XP или Windows 2000, который " поставляется с Windows."
как-то, глубоко в вашем приложении, стили VCL помещают крючки, которые берут на себя покраску ваших элементов управления. Все, что он может обрабатывать, будет нарисовано с помощью "кожи" поверх обычных элементов управления. Многие люди называют это "снятие кожи с vcl", и до стилей VCL вы могли найти стороннюю систему кожи. Теперь он встроен.
все, что не зацепило, все равно получит обычный стиль. Так большинств третья сторона элементы управления и некоторые биты VCL не будут тематическими. Не ждите идеальных мгновенных результатов. Кроме того, вы можете иногда видеть некоторые мгновенные мерцания или сбои в результате снятия кожи, что и следовало ожидать. Добавьте загрузку стилей во время выполнения,и конечное качество вашего результата-это догадка. Вы не можете гарантировать, что стиль, загружаемый во время выполнения, будет содержать все, что вы захотите. Также вы не можете гарантировать, что с одним Вы статически включить в приложение, но, по крайней мере, те, которые вы статически включаете, могут быть проверены вашей командой QA (которая может быть вами).
и вот самые простые шаги, чтобы начать работу: на самом деле только Шаг #2 через #4 необходимы.
щелкните файл - > создать - > проект форм VCL.
щелкните правой кнопкой мыши параметры проекта на панели диспетчер проектов и выберите Свойства. Перейдите к приложению - > внешний вид
клик на собственный стиль, чтобы включить его. (Amakrits является первым в моем списке, поэтому я нажму на это).
нажмите на combobox стиля по умолчанию и измените его на что-то другое, чем по умолчанию.
положите что-то на форму, чтобы она не была пустой. (Кнопка, список и т. д.).
выполнить приложение.
Теперь современные вещи: изменить свой стиль во время выполнения:
Я использую эту кнопку нажмите и 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;