Подскажите, пожалуйста, путь решения следующей хотелки:
Имеется некий базовый класс T0 с полем типа TItem0 базового типа.
Хочу, чтобы в потомках T0 свойство Item имело конкрентный тип (TItem1, TItem2 и тд), возможно, только с перегрузкой GetItem.
Можно, конечно, возвращать тип TItem0 и приводить его к нужному типу за пределами класса при необхордимости. Но мне это не кажется красивым.
Подозреваю, что это надо реализовывать с помощью генериков, но два часа опытов разбили мозги на части, а результата нет.
Прошу подсказки.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
27-11-2024 04:53
Спасибо большое. Посмотрел (всё, как и предполагал), но пока нет времени попробовать.
>>>Хочу, чтобы в потомках T0 свойство Item имело конкрентный тип (TItem1, TItem2 и тд), возможно, только с перегрузкой GetItem.
Образец с перегрузкой свойства, можно посмотреть на примере свойства TCollection.Items. В базовом классе это: property Items[Index: Integer]: TCollectionItem read GetItem write SetItem;, а в производном TStatusPanels - это: property Items[Index: Integer]: TStatusPanel read GetItem write SetItem;.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.