0

(Remarque: Ceci est en quelque sorte lié à my last question).Utilisation de TCollection avec une classe déjà définie

Je suis nouveau à l'aide de TCollection dans Delphi, et je suis toujours en train de faire le tour de the various ways pour gérer les relations de classe/élément de propriété un-à-plusieurs. Explorant TCollection et TCollectionItem, j'ai rencontré quelques questions:

1) Est-il possible d'utiliser TCollection ou TOwnedCollection pour une propriété TForm? (Je ne l'ai pas encore essayé, mais je me demande à l'avance si ses capacités intégrées d'inspecteur d'objets causeront des problèmes). 2) Si l'on veut utiliser une classe déjà définie ailleurs, qui ne peut pas descendre directement de TCollectionItem, avec TCollection (c'est-à-dire comme un "TCollectionItem"), cela peut-il être accompli? Si oui, est-ce quelque chose que l'on accomplirait via des interfaces? ... ou quelle serait la meilleure approche?

+1

Si vous avez deux questions sur, vous devez les séparer en deux questions distinctes ** **, sauf si elles sont inextricablement liées. – Argalatyr

+0

BTW, je pense que Nick Hodges directement répondu # 1 dans votre question précédente ici: http://stackoverflow.com/questions/548567/array-property-tlist-tstringlist-or-tcollection-etc-delphi-win32/548596#548596 – Argalatyr

+0

@Argalatyr - Noté re: 2 questions. Dans ma situation/instance, ils se sentaient très liés, mais je peux voir comment on pourrait penser autrement, et noter l'exhortation. Re: # 1, réponse de Nick adressée TCollection (et était en grande partie pourquoi j'explorais cette option), mais je ne savais pas si les aspects de l'inspecteur d'objets au moment du design pourraient être différents pour les TForms que pour les autres composants. Jeroen répond à la question ci-dessous. – Jamo

Répondre

2
  1. Pour l'inspecteur d'objets, le composant sur lequel les propriétés sont définies n'a pas d'importance. Comme un TForm descend de TComponent, c'est possible. La méthode la plus simple consiste à écrire une classe wrapper (appelons-la W) autour de votre classe déjà définie-else (appelons-la A). Chaque instance de X possède et encapsule A.

--jeroen

Questions connexes