Тема: Глюк с Collection и Item -- помогите разобраться

Посоветуйте, пожалуйста, что мне надо сделать, чтобы программа перестала вылетать.
Есть дерево, каждая вершина которого (класс CAnyObj) содержит 3 элемента:
Public node_name As String
Public its_ac_objects As New Collection
Public subclasses As New Collection      'daughter nodes
есть объекты этого класса:
Public all_objects As New CAnyObj   'root vertex of tree
Dim parent_node As New CAnyObj
Dim new_node As CAnyObj
Есть такой кусок кода, на последней строчке которого прога вылетает со словами "Object doesn'suppot this property or method"  :
Set new_node = New CAnyObj
new_node.node_name = "ByObjType"
all_objects.subclasses.Add new_node
Set parent_node = all_objects.subclasses(1)   'ERROR!!!!
Тем не менее, такой кусок кода работает:
stmp = Empty
For Each tmp In all_objects.subclasses
    stmp = stmp & tmp.node_name & ", "
Next
MsgBox "Node names at this level: " & stmp
Если сделать доступ к элементам по ключу, то прога вылетает в той же строчке с ошибкой "Object reqired".
Итак, есть 2 вопроса:
1) почему не срабатывает доступ к элементам по индексу, а по ключу - срабатывает?
2) почему Бейсик не может сделать присваивание для объектов одного типа?
Спасибо большо всем добрым людям, которые попытаются мне помочь.

Re: Глюк с Collection и Item -- помогите разобраться

Попробуй посмотреть состав all_objects.subclasses в Watch Window и если объект all_objects.subclasses(1) существует ты должен увидеть все его свойства.

Re: Глюк с Collection и Item -- помогите разобраться

Set parent_node = all_objects.subclasses(1) 'ERROR!!!!

Насколько я понимаю, subclasses это коллекция объектов класса CAnyObj,  а не объект класса CAnyObj, поэтому и не происходит присваивание. А вообще, судя по приведенному коду, у Вас довольно запутанная иерархия объектов CAnyObj, которые состоят явно в "кровосмесительных" отношениях. Думаю, эта запутанность и явилась подлинной причиной ошибки.
Попробуйте разобраться как следует с Вашей объектной моделью.

Re: Глюк с Collection и Item -- помогите разобраться

Watch Window посмотрела, свойста увидела. Объект all_objects.subclasses(1) существует.
Насчёт объектной модели - у каждого узла дерева есть набор объектов AutoCAD-a (количество не известно) и набор дочерних узлов (количество тоже не известно). Поскольку с VBA я познакомилась совсем недавно, то я не очень представляю, как иначе реализовать такую модель. Не могу привыкнуть к мысли, что указателей здесь нет. Ведь по сути, в каждом узле я хочу иметь указатели на AutoCAD-овские объекты и указатели на следующие узлы дерева.
Subclasses - да, это коллекция объектов класса CAnyObj, но тогда all_objects.subclasses(1) должен быть объектом класса CAnyObj? В чём я не права?

Re: Глюк с Collection и Item -- помогите разобраться

> masha
А какой тип объекта all_objects.subclasses(1) показывает отладчик?
Насчет указателей. Если вы имеете в виду ссылку на адрес объекта в памяти, то такие указатели применяются в VB(VBA) в неявном виде, так объектная переменная является, в сущности, указателем на объект.

Re: Глюк с Collection и Item -- помогите разобраться

Set parent_node = all_objects.subclasses(1) 'ERROR!!!!

parent_node - это объект, а all_objects.subclasses - свойство точно такого же объекта, а не объект этого же типа. parent_node <=> CAnyObj, а all_objects.subclasses <=> Collection. Объекты разных типов.

Re: Глюк с Collection и Item -- помогите разобраться

> LeonidSN

> brigval
Если у двух людей мысли сходятся, о чем это говорит?

Re: Глюк с Collection и Item -- помогите разобраться

Спасибо за просвещения меня в области VB указателей! А насчёт проги - заработал следующий фрагмент:
Set new_node = New CAnyObj
new_node.node_name = "ByObjType"
all_objects.subclasses.Add new_node
Set parent_node = new_node
В общем, цель достигнута, но почему
Set parent_node = new_node  -  можно,
а Set parent_node = all_objects.subclasses(1) -- нельзя, так и остаётся для меня загадкой. Да, я полностью согласна, что all_objects.subclasses -- это не объект класса CAnyObj, но all_objects.subclasses(1) - это первый элемент коллекции subclasses, он-то объект?...
Всем спасибо за проявленное терпение и полезные советы!