Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление объекта класса, через ссылку на объект 
:(
    Опции темы
neiron
Дата 2.4.2008, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 18.4.2006
Где: Краснодар

Репутация: 3
Всего: 4



Такая ситуация. 
Есть класс А, содержащий в себе класс Б. 
При этом класс Б имеет ссылку на объект класса А (родительский).
При изменении свойств объекта А, объект Б их не видит.

Родительский объект привязывается так:
Код

Public Property Set ParentPlanet(ByRef vData As PlanetImperia)
'used when assigning an Object to the property, on the left side of a Set statement.
'Syntax: Set x.ParentPlanet = Form1
    Set mvarParentPlanet = vData
End Property


Связывание происходит в начале. Затем какое-либо свойство родительского объекта меняется. 
При обращении objA.property выдаётся новое значение. 
При использовании objБ.ParentobjA.propertry выдаётся старое значение. Как я понимаю, создаётся новый объект класса А, который и является родительским? Но он вроде бы по ссылке передаётся. 
Как установить связь?
PM MAIL   Вверх
Akina
Дата 2.4.2008, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Все верно, поскольку в объекте Б имеется ссылка на объект А, создается копия объекта А, которая и становится свойством объекта Б. Оригинал меняется, копия не затрагивается.
Попробуйте в конструкторе объекта А присваивать ссылку на себя в скрытый мембер-объектную переменную, и передавать ее конструктору объекта Б...

Хотя я бы пошел по другому пути - созданию класса-коллекции объектов класса А. Тогда подобъекту класса Б можно передавать имя объекта А в коллекции и обращаться к нему непосредственно через коллекцию. Правда, и тут есть некоторые минусы, особенно если потребуется доступ к не-паблик компонентам.

Есть и еще варианты... какой именно лучше использовать - зависит от задачи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neiron
Дата 2.4.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 18.4.2006
Где: Краснодар

Репутация: 3
Всего: 4



Не совсем понял по первому способу. 
По типу 

Код

set me.copyobjA=me

?
и потом это свойство использовать в качестве передаваемого параметра? в чём тогда разница?

Желательно создать такой механизм, который обеспечил бы разумное использование памяти (без создания дополнительных объектов, и при этом работал достаточно быстро. Вложенность классов получается большая. 
Думаю, коллекция подойдёт, в принципе, но хотелось бы узнать о рзличных методах.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.