Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 29 стр.

UptoLike

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

30
Обработчик событий (метод HandleEvent). Получив событие
(запись типа TEvent), обработчик событий для класса TObject обрабатыва-
ет его по следующей схеме:
Procedure TObject. HandleEvent (Var Event: TEvent);
Begin
if Event. What = evMessage then begin
case Event. Command of
cmCommand1: Action1 (Event. Info);
cmCommand2: Action2 (Event. Info);
else exit end;
ClearEvent (Event) end
End;
Обработчик событий группы вначале обрабатывает команды группы,
а затем, если событие не обработано, передает его своим элементам, вызы-
вая их обработчики событий.
Procedure TGroup.HandleEvent (Var Event: TEvent);
Begin
if Event. What = evMessage then begin
case Event. Command of
{обработка команд объекта-
группы}
else begin
{получить доступ к первому элементу группы}
while (Event. What <> evNothing and {просмотрены не все элемен-
ты} do begin
{вызвать HandleEvent текущего элемента}
{перейти к следующему элементу группы}
end;
exit;
end end;
ClearEvent (Event);
end;
End;
Метод ClearEvent очистка события. ClearEvent очищает
событие, присваивая полю Event.What значение evNothing.
Главный цикл обработки событий (метод Execute). Главный
цикл обработки событий реализуется в методе Execute главной группы
объектаприкладная программапо следующей схеме:
                                   30

      •       Обработчик событий (метод HandleEvent). Получив событие
(запись типа TEvent), обработчик событий для класса TObject обрабатыва-
ет его по следующей схеме:
      Procedure TObject. HandleEvent (Var Event: TEvent);
      Begin
        if Event. What = evMessage then begin
           case Event. Command of
            cmCommand1: Action1 (Event. Info);
            cmCommand2: Action2 (Event. Info);
        …
        else exit end;
        ClearEvent (Event) end
      End;

      Обработчик событий группы вначале обрабатывает команды группы,
а затем, если событие не обработано, передает его своим элементам, вызы-
вая их обработчики событий.
      Procedure TGroup.HandleEvent (Var Event: TEvent);
      Begin
        if Event. What = evMessage then begin
         case Event. Command of
          {обработка команд объекта-группы}
        else begin
          {получить доступ к первому элементу группы}
        while (Event. What <> evNothing and {просмотрены не все элемен-
ты} do begin
         {вызвать HandleEvent текущего элемента}
         {перейти к следующему элементу группы}
        end;
        exit;
        end end;
        ClearEvent (Event);
        end;
      End;
     •     Метод ClearEvent − очистка события. ClearEvent очищает
событие, присваивая полю Event.What значение evNothing.
     •     Главный цикл обработки событий (метод Execute). Главный
цикл обработки событий реализуется в методе Execute главной группы –
объекта “прикладная программа” по следующей схеме: