Вопрос

(Примечание:Это в некоторой степени связано с мой последний вопрос).

Я новичок в использовании TCollection в Delphi и все еще ломаю голову над этим. различные способы для обработки отношений «один-ко-многим» класс/свойство-элемент.Изучая TCollection и TCollectionItem, я столкнулся с парой вопросов:

1) Можно ли использовать TCollection или TOwnedCollection для свойства TForm?(Еще не пробовал, но заранее интересуюсь, не вызовут ли проблемы встроенные возможности инспектора объектов).

2) Если кто-то когда-нибудь захочет использовать какой-то уже определенный класс, который не может напрямую наследовать от TCollectionItem, с TCollection (т.е.вроде «как» «TCollectionItem»), можно ли этого добиться?Если да, то можно ли этого добиться через интерфейсы?...или какой подход будет лучшим?

Это было полезно?

Решение

  1. Для инспектора объектов не имеет значения, на каком компоненте определены свойства.Поскольку TForm происходит от TComponent, это возможно.

  2. Самый простой способ — написать класс-оболочку (назовем его W) вокруг вашего уже определенного в другом месте класса (назовем его A).Каждый экземпляр X владеет и инкапсулирует A.

--джероен

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top