Avec la sortie officielle de Windows 11, Embarcadero a mis à disposition certains styles VCL spécifiques et je propose quelques aides au codage spécifiques à la nouvelle version du système d'exploitation de Microsoft. D'autres viendront au fil du temps.
Après l'avoir annoncé au début de l'année, Microsoft a officiellement lancé Windows 11 la semaine dernière. Malgré quelques difficultés à faire fonctionner le nouveau système d'exploitation sur des ordinateurs plus anciens en raison des nouvelles exigences matérielles, la nouvelle version de Windows offre une expérience utilisateur et un environnement de travail plus agréables, tout en maintenant un très haut degré de compatibilité avec les applications existantes, y compris celles écrites avec Delphi et C++Builder. Nous nous attendons à ce qu'un grand nombre d'utilisateurs finaux passent à Windows 11 dans les mois à venir.
Dans ce billet de blog, je ne veux pas me concentrer sur Windows 11 et son expérience utilisateur renouvelée, mais plutôt sur la façon dont vous pouvez améliorer vos applications VCL pour en faire des citoyens de première classe dans le nouveau système d'exploitation. D'une manière générale, il existe de nombreuses techniques de modernisation que Delphi et C++Builder proposent pour mieux s'adapter aux versions récentes de Windows, de l'utilisation des styles VCL à l'adoption des nombreux nouveaux contrôles VCL introduits ces dernières années (jusqu'aux contrôles ControlList et NumberBox dans RAD Studio 10.4.2 et au RichEdit remanié dans RAD Studio 11 Alexandria).
Concentrons-nous sur le soutien spécifique à Windows 11, en allant plus loin que les suggestions et idées générales de migration. Windows 11 est livré avec les contrôles WebView2, c'est donc le moment idéal pour adopter les contrôles WebView2. TEdgeBrowser par rapport au composant TWebBrowser. Par ailleurs, Microsoft continue de mettre l'accent sur les applications packagées et le Microsoft Store, deux fonctionnalités que vous pouvez obtenir grâce à la prise en charge du format de déploiement MSIX par l'IDE RAD Studio. Ces fonctionnalités sont présentes dans la version actuelle de RAD Studio 11 (et l'étaient déjà auparavant).
Nouveaux styles VCL pour Windows 11
Ce que nous avons publié hier et qui est maintenant disponible dans GetIt est un ensemble de deux nouveaux styles VCL spécifiques à Windows 11, pour les modes clair et foncé. Tapez "Windows 11" dans la barre de recherche pour les trouver rapidement :

Une fois les deux styles installés, vous pouvez ouvrir les paramètres d'un projet VCL, accéder à la page Apparence, ajouter les styles à l'application et (si vous avez activé l'utilisation des styles VCL au moment de la conception), les sélectionner dans la propriété StyleName d'un formulaire pour les prévisualiser au moment de la conception, comme dans l'image ci-dessous. Remarquez, entre autres, les barres de défilement fines de style moderne dans la zone de liste.

Nous avons quelques images plus "officielles" des deux styles ci-dessous, où vous pouvez voir des éléments arrondis supplémentaires et des couleurs correspondant aux nouvelles valeurs par défaut de la plateforme.


Fenêtres 11 coins arrondis
L'un des éléments les plus visibles de Windows 11 est l'utilisation d'éléments d'interface utilisateur arrondis, à commencer par les coins arrondis des formulaires. Si vous créez une toute nouvelle application VCL sans configuration ou paramètre particulier et que vous l'exécutez sous Windows 11, vous devriez voir des coins arrondis pour les formulaires par défaut. Cependant, il s'agit d'une fonctionnalité sur laquelle vous avez un contrôle total en utilisant un appel API Windows spécifique et public DwmSetWindowAttribute:
|
1
2
|
Winapi.Dwmapi.DwmSetWindowAttribute(Poignée, DWMWA_WINDOW_CORNER_PREFERENCE,
@Préférence de coin, taille de(Préférence de coin));
|
Pour faciliter l'utilisation de cette API (déjà couverte par l'API Ian Barker dans un billet de blog détaillé intitulé "Comment contrôler les coins arrondis de Windows 11 dans votre application"), j'ai écrit un interposeur avec un code similaire, disponible sur GitHub à l'adresse :
https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pas
Vous pouvez voir la section de l'interface de l'unité ici :

Il suffit d'ajouter cette unité dans la déclaration d'utilisation de la section d'interface d'un formulaire, après l'unité Vcl.Forms, et votre formulaire aura une nouvelle propriété de classe indiquant l'arrondi par défaut et une nouvelle propriété pour le paramètre spécifique du formulaire, de sorte que vous pouvez écrire :
|
1
2
|
TForm.Coins arrondis par défaut := rcOff; // définir la valeur par défaut pour tous les formulaires
Coins arrondis := rcOn; // modifier l'arrondi pour la forme actuelle
|
Ce code ne fonctionne que sous Windows 11, car Windows 10 ou les versions précédentes l'ignorent (mais ne soulèvent pas d'erreur). Je l'ai utilisé dans une démo simple (également sur GitHub à l'adresse https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round) avec l'interface utilisateur suivante :

Enfin, notez que les applications VCL, y compris celles qui utilisent la barre de titre VCL personnalisée, prennent en charge les éléments suivants Mises en page instantanées en dehors de la boîte :

Un petit problème et d'autres à venir
Comme je l'ai mentionné précédemment, les applications VCL fonctionnent généralement bien sous Windows 11. Il y a un problème avec la coloration des éléments de menu avec les images associées, étant donné que la plateforme utilise un ensemble différent de couleurs par défaut qu'une application VCL ne respecte pas entièrement. Ce problème a été signalé à QP https://quality.embarcadero.com/browse/RSP-35049. Bien qu'il existe une solution de contournement dans le rapport du portail de qualité, nous prévoyons de proposer prochainement un correctif pour RAD Studio 11 pour ce problème.
Nous prévoyons d'autres améliorations liées à Windows 11 et des démonstrations de nouvelles fonctionnalités dans les mois à venir et dans la future version RAD Studio 11.1. Restez à l'écoute.
Créer des applications pour Windows 11 avec VCL
Ce n'est pas un mystère que Embarcadero a utilisé la version 11 pour la dernière version de RAD Studio afin de l'associer à Windows 11. Avec tous les changements dans les bibliothèques d'interface utilisateur que les propres outils de Microsoft ont subis ces dernières années, je suis certain que l'étendue de la prise en charge des API et de l'intégration des plates-formes offerte par la bibliothèque VCL dans Delphi et C++Builder est inégalée par Microsoft Visual Studio ou tout autre ensemble d'outils de tierce partie. Microsoft a clairement indiqué que le développement Windows natif est et reste essentiel (voir Windows App SDK, alias Project Reunion) et reste l'option principale, mais ses bibliothèques dans ce domaine (comme MFC et WinForms) ne sont pas à la hauteur de VCL et sont à la traîne par rapport aux caractéristiques de leur propre plate-forme.
La bibliothèque VCL, avec sa capacité à s'adapter aux API classiques et modernes (de Win API à WinRT en passant par les API basées sur COM) et sa prise en charge des moniteurs High DPI et des tendances modernes en matière d'interface utilisateur - le tout sans nécessiter une réécriture complète de l'application - est unique dans le scénario de développement du bureau Windows et se distingue clairement par sa puissance. Pour le développement de Windows 11, la Visual Component Library est la voie à suivre.
