Справочное руководство по TDMS 7.0 API
MessagesReceived Событие
Смотри также  Пример  Отправить замечание
pMessages
Коллекция новых сообщений, если они есть.
bCancel
TRUE отменяет получение новых сообщений.
TDMSApplication Объект : MessagesReceived Событие

Glossary Item Box

Описание

Генерируется при выполнении проверки новых почтовых сообщений, независимо от их наличия.

Опеделение

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
'======================================================================

Смотри также

© 2023 CSoft Development. Все права защищены.