Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Новости

Дополнительная поддержка VCL для Windows 11

win11 vclapp

С официальным выпуском Windows 11 компания Embarcadero сделала доступными некоторые специфические стили VCL, и я предлагаю несколько помощников по кодированию, специфичных для новой версии настольной ОС Microsoft. Со временем будет больше.


После объявления в начале этого года Microsoft на прошлой неделе официально выпустила Windows 11. Несмотря на некоторые проблемы с запуском новой операционной системы на старых компьютерах из-за новых требований к оборудованию, новая версия Windows предлагает более приятный пользовательский интерфейс и рабочую среду, сохраняя при этом очень высокую степень совместимости с существующими приложениями, в том числе написанными на Delphi и C. ++ Строитель. Мы ожидаем, что в ближайшие месяцы многие конечные пользователи перейдут на Windows 11.

В этом сообщении в блоге я хочу сосредоточиться не на Windows 11 и ее обновленном пользовательском интерфейсе, а на том, как вы можете еще больше улучшить свои VCL-приложения, чтобы сделать их первоклассными гражданами в новой ОС. В общих чертах, существует множество методов модернизации, которые Delphi и C ++ Builder предлагают для лучшего соответствия последним версиям Windows, от использования стилей VCL до принятия многих новых элементов управления VCL, представленных в последние годы (вплоть до ControlList и элементы управления NumberBox в RAD Studio 10.4.2 и обновленный RichEdit в RAD Studio 11 Alexandria).

Давайте сосредоточимся на поддержке Windows 11 и пойдем дальше, чем общие предложения и идеи по миграции. Windows 11 поставляется с элементами управления WebView2, поэтому сейчас самое время использовать  TEdgeBrowser  вместо компонента TWebBrowser. Кроме того, Microsoft продолжает уделять внимание пакетным приложениям и Microsoft Store — двум возможностям, которые вы можете реализовать с помощью поддержки RAD Studio IDE для формата развертывания MSIX. Эти функции есть в текущей версии RAD Studio 11 (и были там даже раньше).

Новые стили Windows 11 VCL

То, что мы выпустили вчера и теперь доступно в GetIt, — это набор из двух новых стилей VCL, специфичных для Windows 11, для светлого и темного режима. Введите «Windows 11» в строку поиска, чтобы быстро найти их:

win11_stylesingetit-6776118

После того, как вы установили два стиля, вы можете открыть настройки проекта VCL, перейти на страницу Внешний вид, добавить стили в приложение и (если вы включили использование стилей VCL во время разработки) выбрать их в свойстве StyleName для форма для предварительного просмотра во время разработки, как на изображении ниже. Обратите внимание, помимо других элементов, на тонкие полосы прокрутки в современном стиле в списке.

win11_stylesindesigner-9416219

У нас есть еще несколько «официальных» изображений двух стилей ниже, где вы можете увидеть дополнительный закругленный элемент и цвета, соответствующие новым настройкам платформы по умолчанию.

windows11light-4816822

windows11dark-4357685

Windows 11 с закругленными углами

Одним из наиболее заметных элементов Windows 11 является использование «закругленных элементов пользовательского интерфейса», начиная с закругленных углов. Если вы создаете новое приложение VCL без специальной конфигурации или настроек и запускаете его в Windows 11, вы должны увидеть более закругленные углы для форм по умолчанию. Однако это функция, которую вы полностью контролируете, используя конкретный общедоступный вызов Windows API  DwmSetWindowAttribute :

Чтобы упростить использование этого API (уже описанного  Яном Баркером  в подробном сообщении в блоге под названием « Как управлять скругленными углами Windows 11 в вашем приложении »), я написал  вспомогательный класс интерпозера  с аналогичным кодом, доступный на GitHub по адресу:

https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pas

Вы можете увидеть раздел интерфейса устройства здесь:

win11_unitinterface-8974721

Просто добавьте этот модуль в оператор uses раздела интерфейса формы после модуля Vcl.Forms, и ваша форма будет иметь новое свойство класса, указывающее округление по умолчанию, и новое свойство для конкретного параметра формы, чтобы вы могли написать :

Этот код работает только в Windows 11, поскольку Windows 10 или предыдущие версии игнорируют его (но не вызывают никаких ошибок). Я использовал его в простой демонстрации (также на GitHub по адресу  https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round ) со следующим пользовательским интерфейсом:

win11_vclapp-4273036

Наконец, обратите внимание, что приложения VCL, в том числе те, которые используют настраиваемую VCL TitleBar, предлагают поддержку  Snap Layouts  из коробки:

win11_snap-6672888

Одна небольшая проблема и еще не все

Как я упоминал ранее, приложения VCL обычно нормально работают в Windows 11. Есть одна проблема с раскрашиванием пунктов меню с соответствующими изображениями, поскольку платформа использует другой набор цветов по умолчанию, которые приложение VCL не полностью поддерживает. Об этом сообщается на QP  https://quality.embarcadero.com/browse/RSP-35049 . Хотя в отчете о портале качества есть обходной путь, мы планируем в ближайшее время предложить исправление для этой проблемы в RAD Studio 11.

Мы планируем дальнейшие улучшения, связанные с Windows 11, и демонстрации новых функций в ближайшие месяцы и в будущем выпуске RAD Studio 11.1. Будьте на связи.

Создавайте приложения для Windows 11 с помощью VCL

Не секрет, что Embarcadero использовал версию 11 для последнего выпуска RAD Studio, чтобы связать его с Windows 11. Со всеми изменениями в библиотеках пользовательского интерфейса, которые собственные инструменты Microsoft претерпели за последние годы, я уверен, что широкая поддержка API а интеграция платформы, предлагаемая библиотекой VCL в Delphi и C ++ Builder, не имеет аналогов в Microsoft Visual Studio или любом другом наборе инструментов сторонних производителей. Microsoft четко указала, что собственная разработка для Windows является и остается ключевой (см. Windows App SDK, также известный как Project Reunion) и остается основным вариантом, но их библиотеки в этом пространстве (например, MFC и WinForms) не соответствуют VCL и отстают от своих особенности собственной платформы.

Библиотека VCL с ее способностью сопоставляться с классическими и современными API-интерфейсами (от Win API до API-интерфейсов на основе COM, с WinRT), а также поддержка мониторов с высоким разрешением DPI и современных тенденций пользовательского интерфейса — и все это без необходимости полного переписывания приложения — является уникальной. в сценарии разработки для настольных компьютеров Windows и явно выделяется своей мощью. Для разработки под Windows 11 лучше всего подойдет библиотека визуальных компонентов.

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES