|
Тема
|
Как да извикам метод на обект
|
|
Автор | Eмo (Нерегистриран) |
Публикувано | 20.12.05 15:43 |
|
Привет,
не съм професионален програмист, за т'ва моля да ме извините, ако ми е малко просташка постановката и въпроса:
Конструкцията е следната,
колекция от обекти(1) притежаващи колекции от обекти(2),
променят се своствата на някой обект (2) той прави к'вот трябва със себе си и променя други (read only) собствени свойства,
които трябва да бъдат отразени в обекта(1) 'притежател' на колекцията, в която е обекта(2).
Въпроса ми е как като прихвана промяна в свойствата на някои от обектите(2) да се обърна към методи на 'притежаващия' го обект(1), ако това е възможно във VB6.
Благодаря предварително.
| |
|
Написах ти отговор, но Дир-а го затри
Сега ме мързи да го пиша наново и ще карам по-накратко
Доколкото разбрах, искаш от притежавания обект (В) да промениш нещо в притежаващия (А). Ако е така, то тогава трябва да дефинираш събитие в обекта В и да го извикаш с RaiseEvent когато настъпва промяната, а в обекта А (притежаващия) трябва да напишеш код за обработка на това събитие.
| |
Тема
|
Re: Как да извикам метод на обект
[re: Killy-Man Jarro]
|
|
Автор | Eмo (Нерегистриран) |
Публикувано | 21.12.05 17:18 |
|
Мерси, значи съм близко. А как да прихвана събитието в обекта В.
| |
|
То нали се случва в обекта В? Там дефинираш събитието като член от тип Event и когато се случи промяната (в някаой метод), генерираш събитието с RaiseEvent.
А в обекта А декларираш обекта В като член с клаузата WithEvents. Тогава в списъка на обектите (горе вляво) имаш обекта В, а като го избереш, в другия списък (горе вдясно) виждаш всичките му евенти. Избираш този евент, който ти трябва и пишеш кода за прихващане на това събитие.
Надявам се, че това обяснение е малко по-ясно.
| |
Тема
|
Re: Как да извикам метод на обект
[re: Eмo]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 22.12.05 17:46 |
|
С event-и ще стане доста трудно, защото parent обектът държи колекция от child-ове. Аз лично реализирам това, което искаш с callback reference и friend методи (на parent и child).
Идеята е child обектът да има Private m_oPatent As cParent и (friend) метод за инициализация Friend Sub frInit(oParent As cParent) през който да бъде инициализана member променливата от parent-а.
Големи проблеми при тази схема ще имаш със cyclic reference-а, който се получава. Аз лично предпочитам да реализирам детерминистично терминиране (с експлицитен метод Terminate на parent-а), но по-елегантно е да го направиш с "weak" refernce към parent-а.
Друг принципен подход е да разгледаш EventCollection на Eduardo Morcillo, която може да raise-ва event-и от елементите си с допълнителен параметър Index (ala Control Arrays).
cheers,
</wqw>
| |
Тема
|
Re: Как да извикам метод на обект
[re: Killy-Man Jarro]
|
|
Автор | Eмo (Нерегистриран) |
Публикувано | 28.12.05 09:43 |
|
Мерси, направих го отдавна и ти написах отговор, ама дир-а го заби някъде. Сега ще го тествам.
| |
|
|
|
|