Два варианта кода
Обнаружил, что эти две версии (одного и того же по смыслу, как я думал ранее) кода дают в корне разный результат.
Через TStyleManager:
if UseDarkTheme then
TStyleManager.SetStyleFromFile('Dark.style')
else
TStyleManager.SetStyleFromFile('Light.style');
Через StyleBook формы:
if UseDarkTheme then
StyleBook.LoadFromFile('Dark.style')
else
StyleBook.LoadFromFile('Light.style');
Self.StyleBook := StyleBook1; // Особая строчка
Особая строчка нужна для того, чтобы стиль применился. И это не смотря на то, что до выполнения этой комнады, Self.StyleBook и так указывает на StyleBook1.
А теперь о разнице
Разница между вариантами в том, что в первом случае не пострадают те стили, которые я уже переопределил через визуальный редактор стилей и прописал в нужных мне контролах. А второй вариант кода заменит тотально всё - в т.ч. и то, что я прописал в нужных мне контролах, т.е. испортит.
Вопросы к знающим
Где в документации описана эта разница в поведении?
Как второй способ обучить не портить "мои" стили?
Как первый способ обучить брать стили не из файла, а из ресурсов приложения (для чего ресурсы и созданы, собственно)?