Page 1 of 1

cambiar un método con OVERRIDE

Posted: Wed Dec 20, 2017 10:30 am
by Xevi
Una inquietud que tengo es cuando cambio o sobrecargo un método de una clase

¿ese método se cambia TODO o solo la parte que reescribo???

por ejemplo...

Code: Select all

//...
   OVERRIDE METHOD KeyChar IN CLASS TEdit WITH xEditKeyChar
//...

FUNCTION xEditKeyChar( nKey, nFlags )
   Local Self := HB_QSelf()

   FWLOG ValType( Self ), ::ClassName()

   IF nKey == VK_RETURN
      Return 0
   ENDIF

return ::Super:KeyChar( nKey, nFlags )
 
¿esto cambia el contenido anterior del método KeyChar de TEdit???
O Sobrecarga el método con lo escrito y si no se cumple retorna al anterior KeyChar existente en la clase original.
::Super:KeyChar( nKey, nFlags )

O... ::Super es la referencia al padre del objeto, en esta ocasion TControl ???

Re: cambiar un método con OVERRIDE

Posted: Wed Dec 20, 2017 11:02 am
by Antonio Linares
Xevi,

> ¿esto cambia el contenido anterior del método KeyChar de TEdit??

Si

> O Sobrecarga el método con lo escrito y si no se cumple retorna al anterior KeyChar existente en la clase original.
> ::Super:KeyChar( nKey, nFlags )

No

> O... ::Super es la referencia al padre del objeto, en esta ocasion TControl ???

Si