Подскажите как можно изменить иконку окна в runtime?
Суть проблемы в том, что мне надо поддерживать приложение для разных заказчиков. Каждый из них хочет иметь собственную иконку в приложении. Очевидное решение - создать несколько проектов и каждому задать требуемую иконку. Однако на практике это весьма утомительное занятие. Хотелось бы сделать одно приложение, а иконки подгружать динамически на основании настроек приложения.
Вспоминая практику VCL и WinAPI, подменить иконку Application оказалось задачей тривиальной:
NewAppIcon := TIcon.Create;
NewAppIcon.LoadFromFile(AIconFile);
SendMessage(ApplicationHWND, WM_SETICON, 1, NewAppIcon.Handle);
А вот дальше начались проблемы. Окна уже прогрузили иконку по умолчанию и добраться до них у меня не получается.
Добраться через стиль не получается, потому что TForm не является наследником TStyledObject и не имеет StylesData. Через FindStyleResource тоже не получается добраться.
Может кто знает как?