Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 20:07 07.06.24 
Компютри и Интернет
   >> Visual Basic
Всички теми Следваща тема *Кратък преглед

Тема Как да извикам метод на обектнови  
АвторEмo (Нерегистриран)
Публикувано20.12.05 15:43



Привет,
не съм професионален програмист, за т'ва моля да ме извините, ако ми е малко просташка постановката и въпроса:

Конструкцията е следната,
колекция от обекти(1) притежаващи колекции от обекти(2),
променят се своствата на някой обект (2) той прави к'вот трябва със себе си и променя други (read only) собствени свойства,
които трябва да бъдат отразени в обекта(1) 'притежател' на колекцията, в която е обекта(2).

Въпроса ми е как като прихвана промяна в свойствата на някои от обектите(2) да се обърна към методи на 'притежаващия' го обект(1), ако това е възможно във VB6.

Благодаря предварително.



Тема Re: Как да извикам метод на обектнови [re: Eмo]  
Автор Killy-Man Jarro (Висок)
Публикувано21.12.05 15:25



Написах ти отговор, но Дир-а го затри
Сега ме мързи да го пиша наново и ще карам по-накратко
Доколкото разбрах, искаш от притежавания обект (В) да промениш нещо в притежаващия (А). Ако е така, то тогава трябва да дефинираш събитие в обекта В и да го извикаш с RaiseEvent когато настъпва промяната, а в обекта А (притежаващия) трябва да напишеш код за обработка на това събитие.



Тема Re: Как да извикам метод на обектнови [re: Killy-Man Jarro]  
АвторEмo (Нерегистриран)
Публикувано21.12.05 17:18



Мерси, значи съм близко. А как да прихвана събитието в обекта В.



Тема Re: Как да извикам метод на обект [re: Eмo]  
Автор Killy-Man Jarro (Висок)
Публикувано22.12.05 12:14



То нали се случва в обекта В? Там дефинираш събитието като член от тип 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



Мерси, направих го отдавна и ти написах отговор, ама дир-а го заби някъде. Сега ще го тествам.




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.