Один обработчик для всех элементов коллекции. Возможно ли? - VB

Узнай цену своей работы

Формулировка задачи:

Надо подписаться на события каждого объекта, содержащегося в коллекции.
Есть ли такая возможность в VB6?
или придется объекты держать в массиве?

Решение задачи: «Один обработчик для всех элементов коллекции. Возможно ли?»

textual
Листинг программы
‘это индивидуальная переменная класса именно того типа,
‘события которого собираемся перехватывать
<font color="blue">Private</font> <font color="blue">WithEvents</font> pEventSource <font color="blue">as</font> AppropriateType

‘это ссылка на наш экспозитор-медиатор
<font color="blue">Private</font>  pExpositor <font color="blue">as</font> clsEventMediator

‘инициализация оболочки 
<font color="blue">Sub</font> Init(uInformed <font color="blue">as</font> clsEventMediator, pSource <font color="blue">as</font> AppropriateType)…
  <font color="blue">Set</font> pEventSource=pSource
  <font color="blue">Set</font> pExpositor= uInformed
‘---------------------------------------------------------------------------
‘ избежать «жесткой связи» с «медиатором» можно примерно так  (по McKinney)
‘ <font color="blue">Dim</font> tmpObj <font color="blue">as</font> clsEventMediator
‘<font color="blue">Dim</font> lngPtr <font color="blue">as</font> <font color="blue">Long</font>
‘lngPtr = ObjPtr(uInformed)
‘CopyMemory tmpObj, lngPtr, <font color="darkblue"><b>4</b></font>
‘<font color="blue">Set</font>  pExpositor= tmpObj
‘  CopyMemory tmpObj <font color="darkblue"><b>0</b></font>&, <font color="darkblue"><b>4</b></font>
‘целесообразность и полезность – по собственному усмотрению
‘--------------------------------------------------------------------------
…трам-пам-пам – тут, по необходимости, обеспечили допривязку событий от pEventSource
‘ к приватным функциям, «подписывающимся» на события и выполнили прочий стартовый код…
<font color="blue">End</font> <font color="blue">Sub</font>

‘это экземпляр функции-получателя события
<font color="blue">Private</font> <font color="blue">Sub</font>  pEventSource_SomeEvent(<font color="blue">byVal</font> param1 <font color="blue">As</font> Tram, <font color="blue">byRef</font> param2 <font color="blue">As</font> Pam)
…’тут еще чуть-чуть поговорим…
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы