Comment améliorer l'utilisation de Delphi Images
J'ai utilisé des images de Delphes qui, pendant des années, et ils sont l'une des fonctionnalités les plus puissantes de la VCL, mais l'utilisation standard d'entre eux semble avoir certains risques tels que:
-
Il est facile de déplacer accidentellement ou de modifier le cadre de sous-composants dans un cadre d'hôte de forme sans s'en rendre compte que vous êtes des "bidouiller" avec le châssis - je sais que cela n'affecte pas l'image d'origine code, mais ce n'est généralement pas ce que vous souhaitez.
-
Lorsque l'on travaille avec l'image que vous sont encore exposés à ses sous-composants pour l'édition visuelle, même lorsque cette image est ans et ne doit pas être touché.
Alors je me suis dit....
-
Est-il un moyen de "groupement" des composants tels que leurs positions sont "verrouillé"? Ce serait utile pour finir les formes ainsi que les cadres. Souvent, d'autres les développeurs de code de retour pour moi, où seule la forme de limites ont changé, et même ils n'ont pas l'intention de tout changer.
-
Est-il possible de transformer un cadre et de ses composants dans un seul composant Delphi? Si oui, le cadre, le fonctionnement interne serait totalement caché, et sa fonctionnalité devrait encore augmenter.
Je suis intéressé par des pensées...
Brian.
Vous devez vous connecter pour publier un commentaire.
Enregistrement de vos images en tant que composante de résoudre les 1. et 2.:
Mais: il y a un peu de captures (qui peut être résolu, voir le lien de l'article), dont le plus important est celui-ci:
Lorsque vous placez les composants sur votre cadre, et plus tard goutte qui cadre comme un composant Delphi forme ou image, les composants sont visibles dans le Volet Structure.
Le problème est que parce qu'ils sont visibles dans le volet structure, vous pouvez les supprimer, provoquant des violations d'accès.
L'astuce pour résoudre ce ne pas oublier le 'branche'.
J'ai appris que précieuse leçon Ray Konopka pendant DelphiLive 2009.
Depuis la leçon est si précieux, j'ai écrit un post de blog qui décrit dans le détail.
La partie essentielle est ce petit morceau de code (plus de détails dans le billet de blog):
Espère que cette aide.
--jeroen
Oui, il suffit de les enregistrer en tant que composants. 🙂
De la conception de votre image normalement et d'après ce registre il. Veillez également à ne pas ressentir des dépendances sur les différentes unités, puisque ceux-ci sont liés lors de votre "composant" est utilisé. Vous pouvez également ajouter
published
propriétés afin de les utiliser dans l'Inspecteur d'Objet plus tard. Voir, par exemple, le code suivant généré par l'IDE (voir aussi mes commentaires):De la compilation ci-dessus dans un package de votre choix, installez-le et vérifiez que vous l'palette de composants. 🙂
HTH
Juste pour l'augmentation de la contribution, notez que si vous allez à
Structure
fenêtre et cliquez-droit sur le TFrame nom que vous avez choisi et cliquez sur leAdd to Palete
option de menu.Ce sera une composante de votre Image et vous n'avez pas besoin d'en créer
Register
procédure. 😉Je suis presque toujours cadre de la création d'instances dans le code. C'est facile et a bien fonctionné pour moi jusqu'à présent.
J'ai aussi couru à ce problème lorsque vous essayez d'utiliser des images comme des composants. Il existe différentes possibilités pour résoudre les problèmes évidents, mais ils sapent le principe de se cacher de l'information (tous les cadre du sous-composants sont exposées comme des propriétés publiées, ce qui signifie tout le monde peut y avoir accès).
Je l'ai résolu par la mise en œuvre d'un générique de "cadre de contrôle de la composante":
Avec cette classe, l'ajout d'un cadre, comme un composant devient un processus en deux étapes:
Lors de l'utilisation de cette approche, l'utilisateur de votre composant ne verrez pas vos sous-composants.