Sergey,
>If you have to skip levels in the class hierarchy than something is wrong with you class design, IMHO.
It is not true on general, and if this were true, it would have to remove the Scope Resolution Operator from the languages to objects and to only use dodefault() or similar command.
Example:
Keypress event is a true effective event if you call it within a subclass
code.
Example:
PROCEDURE PippoPappo
.....
TextBox::Keypress(32,0)
.....
but this.KeyPress(32,0) not send space.
For use this.KeyPress(32,0), I need to put repetitive extra code
PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
DODEFAULT(@m.nKeyCode, @m.nShiftAltCtrl)
NODEFAULT
ENDPROC
on any subclass level of my TextBox.