Dans le passé, la bibliothèque VCL permettait à un développeur de sélectionner un style (ou aucun style) pour l'ensemble de l'application. À partir de la version 10.4, la bibliothèque VCL vous permettra d'utiliser plusieurs styles VCL en même temps dans différentes formes de vos applications, ou même dans différents contrôles d'une même forme. Vous pouvez également mélanger des éléments de style (contrôles et formulaires) et des éléments utilisant le thème par défaut de la plate-forme Windows.
Cette fonction est contrôlée par un nouveau Nom du style pour la propriété TControl classe. Cette propriété prend comme valeur le nom de l'un des styles actifs pour l'application et applique le style au contrôle donné. Si la propriété est vide, le style du contrôle parent est utilisé : ainsi, si vous définissez la propriété pour un formulaire, tous les contrôles du formulaire adoptent le style du formulaire par défaut.
Une démonstration rapide
Comme son nom l'indique, le style par contrôle permet à un développeur d'appliquer des styles différents aux contrôles et aux formulaires d'une même application. Pour commencer, vous devez ajouter plusieurs styles à une application et vous pouvez les utiliser tous. Cette fonctionnalité ne fonctionne que si l'un des styles VCL est actif. Tout d'abord, ajoutez plusieurs styles à une application (astuce, dans la version 10.4, vous pouvez utiliser les nouveaux styles à haute résolution, mais cela fera l'objet d'un autre article de blog) :

Définissez maintenant des noms de styles différents pour les différents contrôles d'un formulaire, comme dans le fichier DFM suivant (je n'ai conservé ici que les propriétés clés pertinentes) :
objet Form2 : TForm2
StyleName = 'Sky'
objet Panel1 : TPanel
StyleName = 'Light'
objet Button1 : TButton...
objet Button3 : TButton
StyleName = 'Sky'
fin
fin
objet Button2 : TButton
StyleName = 'Windows'
fin
objet Button4 : TButton
Nom du style = 'Luna'
fin
objet Button5 : TButton
StyleName = 'Aqua Graphite'
fin
fin
Notez que Bouton1 prend le style du panneau d'hébergement, tandis que Bouton2 rétablit le style du formulaire. Enfin, "Windows" est une valeur spéciale, décrite ci-dessous. Avec ce code, voici l'interface utilisateur d'un formulaire avec 5 boutons utilisant 5 styles différents :

Quelques règles
Il existe différentes approches pour ajuster le style des différents formulaires et contrôles d'une application VCL :
1. Ajustez la liste des styles dans les options du projet (mais vous pouvez également charger les styles au moment de l'exécution).
2. Utilisez la propriété TControl.StyleName pour définir le style spécifique de chaque contrôle ou de chaque formulaire. La valeur StyleName doit être l'un des noms des styles dans les options du projet. Un contrôle peut utiliser le StyleName défini pour son contrôle parent, vous pouvez donc définir la propriété StyleName d'un formulaire pour que le style spécifique soit utilisé par tous les contrôles du formulaire. Cas supplémentaires :
- Par défaut, TControl.StyleName est vide et le contrôle utilise un style par défaut.
- Vous pouvez définir StyleName comme "Windows" pour désactiver l'application de tout style pour le contrôle ou le formulaire.
- Si vous définissez un nom de style qui ne figure pas parmi les styles VCL chargés, le contrôle utilisera le style par défaut.
3. Vous pouvez également définir un style spécifique pour les dialogues courants. Utilisez pour cela la propriété TStyleManager.DialogsStyleName. Par défaut, cette propriété est vide et les dialogues communs utilisent le style par défaut de l'application.
4. Vous pouvez définir le style de l'application comme étant "Windows". Cela signifie que si un contrôle ou un formulaire a une propriété StyleName vide, il utilisera toujours le style "Windows" et le style VCL sera toujours désactivé. Pour activer cette fonctionnalité, vous devez définir la propriété TStyleManager.UseSystemStyleAsDefault sur True. Utilisez cette propriété si vous souhaitez activer le style VCL pour certains formulaires seulement, dans lesquels vous avez défini la propriété StyleName. Mais notez que les styles VCL doivent être actifs dans tous les cas.
Le mécanisme décrit au point 4 ci-dessus permet à un développeur d'utiliser des composants tiers qui ne prennent pas en charge les styles VCL dans une application stylisée, ce qui était assez complexe à gérer dans le passé. La nouvelle architecture devrait permettre de mieux mélanger les contrôles et les formulaires stylisés et non stylisés, et de tirer parti des contrôles tiers sans renoncer aux styles VCL
Notez que le style par contrôle n'est pas appliqué automatiquement pour les contrôles tiers. Pour prendre en charge cette fonctionnalité, un contrôle doit utiliser le code de la méthode Vcl.Themes.StyleServices avec l'option TControl paramètre. Par exemple, StyleServices(Self).DrawElement.
Conclusion
L'introduction des styles VCL par contrôle vous offre beaucoup plus de souplesse dans l'introduction des styles dans votre application. Vous pouvez commencer par styliser seulement certains formulaires, puis procéder progressivement avec les autres. Vous pouvez utiliser vos propres contrôles personnalisés ou des contrôles tiers qui ne prennent pas en charge les styles VCL dans une application stylisée. Vous pouvez mélanger les styles d'interface utilisateur et le faire de manière dynamique.
Bien qu'il y ait beaucoup d'autres fonctionnalités pour VCL en général et les styles VCL en particulier dans la version 10.4, il s'agit d'une nouvelle fonctionnalité géniale qui mérite d'être mentionnée d'emblée sur le blog. Restez à l'écoute pour en savoir plus (et aussi pour de plus belles démonstrations !).
Si vous avez souscrit à un abonnement de mise à jour, l'un des avantages est l'accès aux versions bêta des prochaines versions. Il est encore temps de rejoindre notre programme bêta pour la version 10.4 !
Il s'agit d'un aperçu d'une version à venir de RAD Studio. Il peut toujours y avoir des bogues ou des changements de dernière minute. Rien n'est définitif tant que la version n'est pas officiellement disponible.

