Объектно-ориентированное программирование на языке С++. Ноткин А.М. - 35 стр.

UptoLike

Составители: 

36
evMessage событие-сообщение от объекта.
Для события от объекта (evMessage) задаются два параметра :
commandкод команды, которую необходимо выполнить при появ-
лении данного события;
infoPtrпередоваемая с событием (сообщение) информация.
struct MessageEvent
{int command;
void infoPtr;
};
Методы обработки событий.
Следующие методы необходимы для организации обработки собы-
тий (названия произвольны).
GetEventформирование события;
Execute реализует
главный цикл обработки событий. Он постоянно
получает событие путем вызова GetEvent и обрабатывает их с помощью
HandleEvent. Этот цикл завершается, когда поступит событие «конец».
HandleEventобработчик событий. Обрабатывает каждое событие
нужным для него образом. Если объект должен обрабатывать определен-
ное событие (сообщение), то его метод HandleEvent должен распознавать
это событие и реагировать на
него должным образом. Событие может рас-
познаваться, например, по коду команды (поле command).
ClearEvent очищает событие, когда оно обработано, чтобы оно не
обрабатывалось далее.
Обработчик событий (метод HandleEvent).
Получив событие (структуру типа TEvent), обработчик событий для
класса TDerivedClass обрабатывает его по следующей схеме:
void TDerivedClass::HandleEvent(TEvent& event)
{ //Вызов обработчика событий базового класса
TBaseClass::handleEvent( event );
if( event.what == evCommand ) // Если обработчик событий базового
класса // событие не обработал
{
switch( event.message.command )
{
case cmCommand1:
// Обработка команды cmCommand1
// Очистка события
СlearEvent( event );
break;
                                 36

     evMessage − событие-сообщение от объекта.
     Для события от объекта (evMessage) задаются два параметра :
     command – код команды, которую необходимо выполнить при появ-
лении данного события;
     infoPtr – передоваемая с событием (сообщение) информация.
     struct MessageEvent
     {int command;
      void infoPtr;
     };

      Методы обработки событий.
      Следующие методы необходимы для организации обработки собы-
тий (названия произвольны).
      GetEvent – формирование события;
      Execute реализует главный цикл обработки событий. Он постоянно
получает событие путем вызова GetEvent и обрабатывает их с помощью
HandleEvent. Этот цикл завершается, когда поступит событие «конец».
      HandleEvent – обработчик событий. Обрабатывает каждое событие
нужным для него образом. Если объект должен обрабатывать определен-
ное событие (сообщение), то его метод HandleEvent должен распознавать
это событие и реагировать на него должным образом. Событие может рас-
познаваться, например, по коду команды (поле command).
      ClearEvent очищает событие, когда оно обработано, чтобы оно не
обрабатывалось далее.
      Обработчик событий (метод HandleEvent).
      Получив событие (структуру типа TEvent), обработчик событий для
класса TDerivedClass обрабатывает его по следующей схеме:

void TDerivedClass::HandleEvent(TEvent& event)
  { //Вызов обработчика событий базового класса
   TBaseClass::handleEvent( event );
   if( event.what == evCommand ) // Если обработчик событий базового
класса                               // событие не обработал
   {
   switch( event.message.command )
      {
      case cmCommand1:
        // Обработка команды cmCommand1
        // Очистка события
        СlearEvent( event );
         break;