Можно ли сделать 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

Более подробную информацию можно найти в этом блоге.

Другие вопросы по тегам