Visual Basic |
---|
Public Event MessagesReceived( _ ByVal pMessages As TDMSMessages, _ ByRef bCancel As Boolean _ ) |
- pMessages
- Коллекция новых сообщений, если они есть.
- bCancel
- TRUE отменяет получение новых сообщений.
1. Событие является отменяемым: если параметру bCancel присвоено значение TRUE, новые сообщения не будут получены (иначе говоря, будут потеряны).
2. Событие наступает перед тем, как на экран будет выведено системное сообщение о получении новой почты (если она была). Таким образом, если в обработчике определена отмена события (bCancel = TRUE), то новые сообщения будут потеряны и, соответственно, системное сообщение о новой почте показано не будет.
3. Событие нельзя вызвать программно: в API TDMS нет метода для получения новых сообщений.
4. Событие генерируется:
- при выполнении команды "Отправить/Получить почту";
- каждые 10 минут с момента генерации последнего сообщения Messages_ Received (выполняется проверка почты);
- при переключении фокуса на папку Входящие. Замечание: если в момент выполнения команды Отправить/Получить почту на Панели состава отображалось что-либо кроме ящика Входящие, то сообщение генерируется дважды: первый раз – в момент выполнения команды, второй раз – при показе содержимого Входящих на Панели состава (фокус переводится автоматически);
- при проверке почты в момент входа в систему. Таким образом, если на момент входа в ящике есть новые сообщения, то событие Messages_ Received может генерироваться дважды:
- в момент входа – в параметре MessagesCol передается коллекция новых сообщений;
- если в момент последнего выхода пользователя фокус был установлен на ящике Входящие, то теперь на Панели состава будет открыто его содержание и, как следствие, опять генерируется событие Messages_ Received. Параметр MessagesCol в данный момент уже не содержит ничего.
5. Обработчик может быть размещен в скрипте профиля и/или общесистемном. Если обработчики определены на обоих уровнях, то:
- в первую очередь событие обрабатывается в скрипте профиля пользователя, затем в общесистемном;
- если на уровне профиля событие было отменено (параметру bCancel присвоено значение TRUE), то обработчик события, размещенный в общесистемном скрипте, вызван не будет.
6. Схему последовательности генерации событий в момент запуска приложения см. на рисунке:
VB Script (Visual Basic) | ![]() |
---|---|
'Текст обработчика может быть размещен в скрипте профиля или 'общесистемном скрипте. '====================================================================== 'Обработать коллекцию новых сообщений '============================================================================== Sub Messages_Received(MessagesCol, Cancel) count = MessagesCol.Count If count <> 0 Then 'Если есть новая почта, сообщить от кого письма и дать 'возможность пользователю отменить их получение msg = "Получены новые сообщения от" For i=0 To count-1 msg = msg & Chr(13) & MessagesCol.Item(i).From Next msg = msg & Chr(13) & "Отменить их получение? Если да, то новые сообщения будут потеряны." If ((MsgBox(msg, vbYesNo + vbQuestion, "Проверка почты")) <> VbNo) Then Cancel = TRUE End If Else 'Иначе просто сообщить о том, что писем нет. MsgBox "Новых сообщений нет.", vbInformation, "Проверка почты" End If End Sub '====================================================================== |