Можно ли сделать Delphi TTaskDialog для использования VCLStyles?
Можно ли сделать Delphi TTaskDialog для использования VCLStyles?
2 ответа
AFAIK, и, как заявил TLama в своем комментарии, это TTaskDialog
просто сопоставляя Windows API напрямую, вы не сможете использовать VCL Style напрямую.
НО вы можете сделать это, используя хак, аналогичный описанному в этой статье, об использовании стилей VCL в TWebBrowser.
Я подозреваю, что это будет какая-то работа или даже неосуществимая. Вам придется взломать все компоненты, созданные Windows, что непросто. Task Dialog API не предоставляет полный и подробный интерфейс COM с множеством обратных вызовов, готовых к переопределению, как TWebBrowser
делает.
Если для начала вы используете код эмуляции диалога с открытым исходным кодом, вы можете принудительно использовать наш уровень эмуляции с чистыми компонентами VCL. В этом случае будет легко работать со стилями. Не забудьте прислать нам отзыв и патч, чтобы улучшить устройство! Думаю, другие пользователи хотели бы воспользоваться такими приятными функциями. Вот что замечательно с Open Source: вы начинаете что-то, публикуете, затем вклады интегрируются, и результат улучшается.:)
Я только что добавил поддержку TTaskDialog в библиотеку VCL Styles Utils.
Чтобы активировать эту функцию, вам нужно добавить эти модули в ваш проект.
- Vcl.Styles.Utils.Forms
- Vcl.Styles.Utils.SysStyleHook
- Vcl.Styles.Utils.SysControls
- Vcl.Styles.Hooks
Более подробную информацию можно найти в этом блоге.