Цитата: Мне нет, и я не понимаю причин такой нелепой убогости такой архитектуры!
Ты опять бредишь, TList выполняет ровно то, что в него заложено и никакой убогости в этом нет.
Добавлено: Цитата: Разобрался, правда не должно. Дружно говорим спасибо COM за возможность в потомке НЕ РЕАЛИЗОВЫВАТЬ методы базового интерфейса. Нелогично, но почему то так принято..
Добавлено: [more] Это как раз очень логично и почему так принято - грамотно объясняется в книжке "Сущность технологии COM" (если не ошибаюсь).
Если кратко то интерфейс - это абстрактный протокол, который описывает только взаимодействие с объектом и не содержит детали его реализации. Возьмём класс X, реализующий некоторый функционал, класс X могут наследовать несколько других классов XA, XB, XC, в этом случае они наследуют и расширяют функционал родительского класса X, но никак его не замещают и не ограничивают, работает принцип подстановки Лисков, мы можем создать объект любого из дочерних классов, привести его к базовому и спокойно работать. Теперь возьмём интерфейс Y, описывающий некоторый абстрактный протокол, этот интерфейс могут реализовывать несколько классов YA, YB, YC, в этом случае они "наследуют" и реализовывают протокол взаимодействия и т.к. никакой базовой реализации у интерфейса нет - YA, YB, YC реализовывают протокол взаимодействия полностью сами, при этом теперь никем не гарантируется, что будет работать принцип подстановки Лисков, даже несмотря на схожесть сигнатур интерфейса, семантика его реализаций может быть различной (собственно в COM даже рекомендуется давать наименования методам с неопределённым смыслом, чтобы каждая реализация интерфейса могла их интерпретировать по своему). Тоже самое касается и наследования интерфейсов, должен соблюдаться не только сигнатурный контракт, но и гарантированно семантический, а для этого класс A, должен содержать реализацию интерфейсов и child и parent. [/more]
Добавлено: Цитата: Проблема интерфейсов в дельфи в том, что изначально они делались под COM, но потом стали некоей самостоятельной сущностью!
Проблем у интерфейсов в дельфи нет. Интерфейсы - это не просто фича MS COM, перекачивавшая в Delphi, это прежде всего идеология, это стиль компонентно-ориентированного программирования. И это очень удачная идея реализации понятия интерфейс, дающая такую гибкость, какая неведома в других языках (Джава, Шарп, С++), где интерфейсы фактически представляют из себя абстрактные классы, не имеющие каких либо особенностей.