Делфи 10 инструкция ознакомит Сиэтл не установлен должным образом в других формах, затем основной


У меня есть 3 книги стилей на моей главной форме, которые пользователь может выбрать. Как только он установлен, я также устанавливаю тот же самый стиль для других моих форм. Большинство стилей в книге стилей настраиваются правильно, но у меня есть 1 панель инструментов, которая не получает нужного цвета и, кажется, остается первоначальным цветом.

Я уже пробовал 2 способа установить стиль книги.

Метод 1:

Из других форм оно само с:

Self.StyleBook := TForm(Application.MainForm).StyleBook;

Метод 2:

О создании других форм в моей Главная форма.

Form2 := TForm2.Create(nil);
Form2.StyleBook := Self.StyleBook;
Form2.Show;
Оба эти метода Дали один и тот же результат. Единственный способ, которым я смог решить эту проблему, - это добавить книги стилей в конструктор и для других форм. Но я предпочитаю этого не делать.

Есть ли у кого-нибудь решение для этого?

Обновление: Я также заметил, что цвет стиля устанавливается после поворота экрана.

1 2

1 ответ:

Я нашел решение своей проблемы.

Для компонентов, которые не получают правильный стиль, я снова устанавливаю их stylelookup во время выполнения в событии FormActivate.

Не знаю почему, но это решило мои проблемы со стилем. И он должен быть установлен в FormActivate. Я также попытался установить его в FormCreate, но это не сработало!