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

UptoLike

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

47
Если объект, наследуемый от стандартного объекта TV, должен об-
рабатывать события, не обрабатываемые стандартным объектом, перекры-
ваемый метод HandleEvent записывается по следующей схеме:
TMyObject=object(TBaseObject)
...
Procedure HandleEvent(Var Event:TEvent);virtual;
...
end;
Procedure TMyObject.HandleEvent(Var Event:TEvent);
begin
inherited HandleEvent(Event);
if Event.What=evCommand then
case EventCommand of
cmCommand1: Proc1;
cmCommand2: Proc2;
...
else exit
end;
ClearEvent(Event)
end;
Если событие не обработано, осуществляется выход по Exit и собы-
тие направляется следующему элементу в соответствии с маршрутом об-
работки событий. Если событие обработано, то оноочищается вызовом
метода ClearEvent.
Если наследуемый объект должен обрабатывать событие базового
объекта отличным от базового образом, то перекрываемый метод Han-
dleEvent записывается по следующей
схеме:
Procedure TMyObject.HandleEvent(Var Event:TEvent);
begin
if Event.What=evCommand then
case EventCommand of
cmCommand1: Proc1;
cmCommand2: Proc2;
...
else begin
inherited HandleEvent(Event);
exit
end
end;
ClearEvent(Event)
end;
                                 47
     Если объект, наследуемый от стандартного объекта TV, должен об-
рабатывать события, не обрабатываемые стандартным объектом, перекры-
ваемый метод HandleEvent записывается по следующей схеме:
     TMyObject=object(TBaseObject)
     ...
     Procedure HandleEvent(Var Event:TEvent);virtual;
     ...
     end;
     Procedure TMyObject.HandleEvent(Var Event:TEvent);
     begin
     inherited HandleEvent(Event);
     if Event.What=evCommand then
      case EventCommand of
     cmCommand1: Proc1;
     cmCommand2: Proc2;
     ...
     else exit
     end;
     ClearEvent(Event)
     end;
     Если событие не обработано, осуществляется выход по Exit и собы-
тие направляется следующему элементу в соответствии с маршрутом об-
работки событий. Если событие обработано, то оно “очищается” вызовом
метода ClearEvent.
     Если наследуемый объект должен обрабатывать событие базового
объекта отличным от базового образом, то перекрываемый метод Han-
dleEvent записывается по следующей схеме:
     Procedure TMyObject.HandleEvent(Var Event:TEvent);
     begin
     if Event.What=evCommand then
      case EventCommand of
     cmCommand1: Proc1;
     cmCommand2: Proc2;
     ...
     else begin
           inherited HandleEvent(Event);
           exit
          end
     end;
     ClearEvent(Event)
     end;