Utilisation des styles de l'EDI dans des Plugins tierces parties

De RAD Studio
Aller à : navigation, rechercher

Remonter à Extension de l'EDI par l'utilisation de l'API Tools


L'EDI utilise des styles VCL pour son apparence. Des plugins tierces parties fournissent des fenêtres telles que les fenêtres ancrables et des boîtes de dialogue correspondant aux styles de l'EDI. En plus de suivre le thème utilisé, des contrôles spécifiques comme TGroupBox possèdent des "raccordements de styles" pour garantir qu'ils sont restitués dans une apparence différente de l'apparence habituelle. C'est aussi le cas pour vos fenêtres.

Informations générales

L'EDI fournit l'API IOTAIDEThemingServices qui vous permet de vérifier si les thèmes sont activés.

Après avoir identifié le nom des thèmes de l'EDI et de l'éditeur, appliquez le thème de l'EDI à votre fiche ou à vos contrôles et recensez votre fiche dans les raccordements de styles afin d'obtenir un comportement spécial de l'EDI.

Cette interface vous permet également d'accéder aux StyleServices de l'EDI. L'EDI maintient un objet services de styles représentant le style de l'EDI.

Accédez à cette interface en utilisant BorlandIDEServices :

var 
ThemingServices : IOTAIDEThemingServices;

if Supports (BorlandIDEServices, IOTAIDEThemingServices, ThemingServices) then...

Recensement de votre fiche pour définir l'apparence de l'EDI

Dans l'initialisation de votre plugin ou le contructeur de votre fiche, appelez IOTAIDEThemingServices.RegisterFormClass avec la classe de votre fiche (le type de la fiche). Cette opération ne doit être effectuée qu'une seule fois pour appliquer les raccordements de style de votre fiche. Il n'est pas nécessaire d'annuler le recensement. Une fois cela effectué, le TGroupBox est dessiné sans cadre, avec une fonte de libellé plus grande et une seule ligne dans la partie supérieure, comme c'est le cas pour les zones de groupe de la boîte de dialogue Options.

Pour chaque instance de votre fiche, appelez IOTAIDEThemingServices.ApplyTheme. Vous appliquez ainsi le style de l'EDI à votre fiche. Répétez l'opération lorsque le style de l'EDI est modifié, afin de répercuter le changement sur votre fiche et les contrôles. Voir ci-dessous plus d'informations sur comment détecter les modifications de style de l'EDI.

Détection des changements de style

Recensez un notificateur qui détectera les modifications de thème de l'EDI ou de l'éditeur.

  • Pour le thème de l'EDI, utilisez IOTAIDEThemingServices.AddNotifier.
  • Pour les modifications du schéma de couleurs de l'editeur, utilisez IOTAIDEThemingServices.AddEditorColorNotifier.

Les deux interfaces du notificateur possèdent deux méthodes qui sont appelées, un variant Changing (par exemple IOTAEditorColorSpeedSetting.EditorColorChanging) qui est appelé avant la modification du thème, et un variant Changed (par exemple INTAIDEThemingServicesNotifier.ChangedTheme) qui est appelé après la modification du thème.

En principe, un notificateur n'est recensé que si vous souhaitez être averti des modifications du thème de l'EDI, à moins que vous ne souhaitiez être averti des modifications des paramètres de couleur de l'éditeur.

Dans votre implémentation de la méthode INTAIDEThemingServicesNotifier.ChangedTheme, appelez IOTAIDEThemingServices.ApplyTheme pour votre fiche. Votre fiche et vos contrôles sont ainsi mis à jour avec le nouveau style. Les couleurs personnalisées et les dessins personnalisés utilisés par votre fiche sont également mis à jour en fonction des nouvelles couleurs.

Guide de style

L'EDI utilise une apparence commune pour de nombreuses boîtes de dialogue : un volet teinté contenant les boutons OK, Annuler apparaît en bas de la fiche avec d'autres boutons, alors que le reste de la fiche est de la même couleur que la fenêtre.

La meilleure façon d'implémenter ce type d'apparence se fait en utilisant deux volets, un volet aligné en bas qui contient les boutons, et un autre aligné sur le client qui contient le reste de la boîte de dialogue. Par chaque volet, procédez comme suit :

  1. Définissez ParentBackground sur false.
  2. Retirez seClient de StyleElements.
  3. Définissez la propriété Color du volet qui contient le reste de la boîte de dialogue sur clWindow, et celle du volet des boutons sur clBtnFace. Si besoin, vous pouvez obtenir la valeur du thème de chaque couleur système via IOTAIDEThemingServices.StyleServices.GetSystemColor.

Avec une mise à l'échelle de 100 %, un volet de boutons typique a une hauteur de 49 pixels. Les boutons sont indentés de 20 pixels à droite, mis à l'échelle par défaut à 75x25 et placés avec une propriété Top définie à 12. Vous obtenez ainsi une marge de 12 pixels sous le bouton.

Dans TGroupBox, assurez-vous la propriété Top de votre plus haut contrôle soit à 26 pixels minimum. Cela laissera de la place pour des libellés plus longs.

L'EDI indique les relations entre les contrôles et les données via l'indentation.

Un paramètre ou un contrôle qui dépend d'un autre contrôle (par exemple, qui modifie le comportement d'un paramètre ou qui est uniquement activé si un paramètre a une valeur spécifique) doit être placé sous ce paramètre, avec une indentation de 16 pixels). Cette indentation permet au contenu de s'aligner sur le début du libellé du bouton radio ou de la case à cocher ; s'il apparaît sous un autre contrôle tel qu'un TComboBox l'indentation sera cohérente pour tous les contrôles.

La disposition de l'EDI utilise une grille de 4x4 pixels. La hauteur de la plupart des éléments d'UI est un multiple de 4 pixels. Par exemple, la hauteur d'une rangée de vue liste ou d'arborescence est de 20 pixels.

Voir aussi