En utilisant TCollection avec une classe déjà définie
-
11-09-2019 - |
Question
(Note: Ceci est un peu liée à href="https://stackoverflow.com/questions/1447365/tform-property-thats-an-array-or-collection-of-tframe-descendants"> question).
Je suis nouveau à l'aide de TCollection à Delphes, et je suis toujours envelopper ma tête les différentes façons pour gérer un à-plusieurs classes / biens-poste. Explorer TCollection et TCollectionItem, je suis tombé sur quelques questions:
1) Est-il possible d'utiliser TCollection ou TOwnedCollection une propriété TForm? (Ont pas encore essayé, mais me demande à l'avance si ses capacités d'inspecteur objet intégré causeront des problèmes).
2) Si l'on veut toujours utiliser une classe déjà définie par ailleurs, qui ne peut descendre directement à partir TCollectionItem, avec TCollection (ce genre de « comme » un « TCollectionItem »), peut-il être accompli? Si oui, est-ce quelque chose qu'on accomplirait via des interfaces? ... ou quelle serait la meilleure approche?
La solution
-
Pour l'inspecteur d'objets, il n'a pas d'importance sur ce composant, les propriétés sont définies. Depuis un TForm descend de TComponent, il est possible.
-
Le plus simple est d'écrire une classe wrapper (permet de l'appeler W) autour de votre classe déjà définis ailleurs (permet de l'appeler A). Chaque instance de X possède et encapsule A.
- jeroen