|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Передать "перерисоваться" всем контролам с моим стилем
Приветствую.
Пишу свои контролы, которые получают данные о стиле от компонента стиля. Один компонент на все контролы. Теперь не могу понять, как заставить перерисоваться все компоненты, которые подключены к компоненту стиля, после изменения параметров в нём? Последний раз редактировалось djScally, 30.03.2022 в 11:06. |
#2
|
|||
|
|||
Все зависит от того, как ты хранишь, и хранишь ли вообще, ссылки на соотв. компоненты. В крайнем случае, можно "пробежать" по всем формам и компонентам на формах и если это твой компонент и он "смотрит" на соотв. компонент стиля, то дать ему команду перерисоваться.
Еще вариант - заблокировать отрисовку обновления формы и дать команду перерисоваться всей форме, а она уже даст команду всем компонентам на ней по иерархии. После этого разблокировать форму (блокировка нужна что бы форма не мерцала в момент перерисовки). |
#3
|
|||
|
|||
Бегать по форме искать - ерунда какая-то. Стиль может быть на одной форме, а компоненты ссылающиеся на него - на сотне других форм.
Ничего с подключенных к стилю компонентов не собираю, но видимо придётся при присоединении стиля, собирать поинтеры компонентов в TList стиля. Ох не нравится мне такое решение. Возможно будет лучше слать глобальное сообщение и отлавливать его в компонентах? Последний раз редактировалось djScally, 01.04.2022 в 07:59. |
#4
|
|||
|
|||
Ну да. У тебя есть список форм (в Application). Можно просто послать сообщение перерисоваться самой форме, а уже она всем компонентам на ней сообщит об этом.
|