Глобальные события ?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Lexa
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 17.11.2005 (Чт) 0:13
Откуда: Тверь

Глобальные события ?

Сообщение Lexa » 18.12.2007 (Вт) 18:51

Уважаемые форумчане, подскажите в какую сторону копать, если нужно что бы событие видели любые части приложения ? Например при каком-либо событии, оно обрабатывалось в нескольких классах.

Lexa
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 17.11.2005 (Чт) 0:13
Откуда: Тверь

Сообщение Lexa » 19.12.2007 (Ср) 15:11

По результатам разговора с Viper'ом через ICQ если кому будет интересно пришли к следующему выводу:

Код: Выделить всё

Public Class MessageSystem
    Shared _message As Long
    Shared _pa As Object
    Public Event GetMessage(ByVal Message As SM, ByVal AddParam As Object)

    Public Sub SendMessage(ByVal objMessage As SM, Optional ByVal Params As Object = Nothing)
        _message = objMessage
        _pa = Params
        RaiseEvent GetMessage(_message, _pa)
    End Sub
End Class


SM - Энумератор с кодами действий, param - параметры

Изврат рабоет следующим образом, В модуле
Код: Выделить всё

1. public withevent MSys as  new MessageSystem

2. во всех классах прописано :
Код: Выделить всё

private withevents locMSys as messageSystem = MSys

обрабатывалось сообщение :
Код: Выделить всё

private sub GetMessage(Mess,Param) handles locMSys.GetMessages

3. отправляются сообщения
Код: Выделить всё

locMSys.SendMessage(SM,Param),


Ещё можно private withevents locMSys as messageSystem = MSys запихать в родительский класс.

P.S: Есть ещё варианты ?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 19.12.2007 (Ср) 19:49

Если ты спрашиваешь про варианты, значит предложенный Viper'ом вариант тебя не устраивает. Чем?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Lexa
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 17.11.2005 (Чт) 0:13
Откуда: Тверь

Сообщение Lexa » 20.12.2007 (Чт) 16:53

Nord777
Это мой первоначальный вариант, возможно есть ещё какое-нибудь решение. Т.к. я в программирование не ахти какой спец, то чем больше вариантов решения задачи знаешь, тем проще ориентироваться.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 87

    TopList  
cron