Оқиғаны өңдегіш (HandleEvent әдісі).
TDerivedClass класы үшін оқиғаны алып, оқиғаны өңдегіш оны келесі схема бойынша өңдейді:
void TDerivedClass::HandleEvent(TEvent& event)
{ //Базалық кластың оқиға өңдегішін шақыру
TBaseClass::handleEvent( event );
if( event.what == evCommand ) // Егер базалық кластың оқиға өңдегіші оқиғаны // өңдемесе
{
switch( event.message.command )
{
case cmCommand1:
// cmCommand1 командасын өңдеу
// Оқиғаны тазарту
СlearEvent( event );
break;
case cmCommand2:
// cmCommand2 командасын өңдеу
СlearEvent( event ); командасын өңдеу
break;
…
case cmCommandN:
// cmCommandN командасын өңдеу
СlearEvent( event );
break;
default: // оқиға өңделген жоқ
break;
}
};
}
Топтың оқиға өңдегіші алдымен топтың командаларын өңдейді, сонан соң егер оқиға өңделмесе өзінің элементтеріне олардың оқиға өңдегіштерін шақыра отырып оны береді.
void TGroup::HandleEvent(TEvent& event)
{ if( event.what == evCommand )
{switch( event.message.command )
// объект-топтың оқиғасын өңдеу
default: // оқиға топпен өңделмеген
//топтың бірінші элементіне рұқсат алу
while((event.what != evNothing)!!( /* барлық эелементтер қаралып болған жоқ */)
{
//ағымдағы элементтің HandleEvent оқиғасын шақыру
//топтың келесі элементіне көшу
}
break;
}
}
Достарыңызбен бөлісу: |