Зміна стилю FireMonkey компонента в RunTime

firemonkey

IDE FireMonkey надаєширокі функціональні можливості зміни різних властивостей компонента (зокрема параметрів стилю) під час проектування. Параметри стилю також включені в об'єктні властивості компонента. Але що робити, якщо об'єктний код не забезпечує спосіб змінити стиль компонента динамічно під час виконання? Багато програмістів стикалися з цією проблемою

Нижче наводитьсяповний вихідний код компонента, де забезпечується реалізація поставленої мети. Код взятий із реально працюючого FireMonkey програми.

Вихідний код компонента

Як змінити стиль компонента в RunTime?

Нас цікавитьперевизначений код методу ApplyStyle, який досягає поставленої мети і дозволяє дізнатися трохи більше про механізм стилів.

Мета методу ApplyStyle -знайти відповідний об'єкт стилю та змінити значення властивостей компонента: Opacity, Color, Enabled. ApplyStyle шукає потрібний ресурс за допомогою методу FindStyleResource. При цьому на формі програми, що використовує компонент, має бути присутня відповідна книга StyleBook. Далі все дуже просто — якщо ресурс стилю знайдено, то зміна значень потрібних властивостей не є проблемою.

Замість ув'язнення

Така роботаметоду ApplyStyle стала можлива тільки тому, що цільовий компонент має унікальне ім'я стилю - 'Visual_Component_Style' і відповідний файл стилю. Той факт, що код FireMonkey компонента покладається на інформацію з файлу стилів, передбачає, що редагування файлу стилю може змінити функціональність самого компонента.