svp писал(а):Какой тип у m_elements[bl]?
Тип IIndexTreeElement.
svp писал(а):Зачем перекрывать метод free?!!
Теперь незачер, раньше думал что его можно вызывать будет )
svp писал(а):Не знаю как в 2009, но в 6 дельфях, если не используешь COM, GUID'ы присваивать не обязательно. С помощью них можно было бы создать экземпляр класса, обслуживающего интерфейс, не зная о нём ничего, кроме этого самого гуида.
GUID'ы нужны для проверки на принадлежность интерфейсу.
svp писал(а):В описании сласса TIndexTreeElement, еадо убрать "procedure free;". Вы перекрываете метод, который правильно уничтожает экземпляр объекта и вызывает деструктор.
Метод идентичен оригинальному, так что не страшно такое перекрытие. Но раз его нельзя вызывать, то уберу.
svp писал(а):Ты варнинги при компиляции читаешь вообще?=))) Там очень полезные вещи пишутся.
Читаю, варнингов ни одного нет (кроме конечно насчёт использование платформазависимых библиотек).
svp писал(а):Да конечно! Но вы перекрыли правильный метод Free. К тому же вызывать его не нужно для интерфейсов. Достаточно обнулить ссылки и дельфи сделает всё за тебя.
При обнулении ссылок всё и сейчас отлично срабатывает.
svp писал(а):тип TIndexElementsArray должен быть массивом интерфейсов, а не массивом объектов.
Так и есть.
П.С. Большое спасибо за помощь, разобрался с этой темой.