Utilisation de styles définis par des composants dans des packages de conception installés dans l'EDI

De RAD Studio
Aller à : navigation, rechercher

Remonter à Personnalisation des applications FireMonkey avec les styles


Les composants personnalisés définis dans votre unité FireMonkey peuvent définir de nouveaux styles. Vous pouvez recenser ces composants personnalisés dans l'unité et construire un package à partir de l'unité.

Vous pouvez ensuite installer dans l'EDI ce package de conception recensant les composants personnalisés. Lorsque vous exécutez l'EDI en chargeant un projet qui n'utilise pas de composant recensé de ce package, l'EDI utilise par défaut le chargement intelligent de composants. Par conséquent, les composants personnalisés de ce package ne sont pas chargés dans la mémoire. En conséquence, les styles définis par ces composants ne sont pas connus de l'EDI. Les styles sont référencés explicitement dans des livres de styles à l'aide des chaînes StyleName. Par conséquent, l'utilisation des chaînes StyleName définies pour le composant personnalisé n'oblige pas l'EDI à charger ce composant personnalisé s'il n'est pas utilisé dans un projet chargé. L'ouverture d'un tel projet génère alors une erreur comme celle-ci :

Error reading <StyleBook1.ResourcesBin>: Class <ComponentClass> not found. 
Ignore the error and continue?
NOTE: Ignoring the error may cause components to be deleted or property
values to be lost.   

Si vous ignorez ces messages d'erreur, le style référencé n'est pas connu du projet. Si vous construisez un tel projet et que vous exécutez l'application obtenue, l'application peut générer une erreur d'exécution en tentant d'accéder à ce style.

Pour ces types de composants personnalisés, vous devez explicitement désactiver le chargement intelligent du package dans lequel ces composants sont recensés.

Pour désactiver le chargement des composants recensés dans un appel de package; appelez

ForceDemandLoadState(dlDisable)

pendant l'implémentation de la procédure Register d'un package si l'état de chargement de ce package doit être défini explicitement.

Le chargement intelligent des packages de conception fonctionne comme décrit ci-après. Par défaut, l'EDI utilise le chargement intelligent des packages de conception installés dans l'EDI. Lorsque l'EDI démarre, il ne charge pas immédiatement tous les packages installés. Initialement, seuls les composants des packages installés qui sont explicitement utilisés dans le groupe de projets sont chargés par l'EDI. Les packages qui ne sont pas chargés peuvent l'être automatiquement sur demande. Par exemple, lorsque le programmeur fait glisser un composant de la palette d'outils dans le Concepteur de fiches, le package dans lequel ce composant est recensé est chargé dans l'EDI. Le chargement intelligent permet de diminuer le délai d'ouverture de l'EDI et la mémoire utilisée.

Voir aussi