FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ocultar propiedades métodos y eventos heredados
Cuando creo un componente que hereda de otro, ¿existe alguna manera de ocultar propiedades, métodos y/o eventos de la clase padre de la que hereda?
Los elementos que forman un componente son: las propiedades, los métodos y los eventos. Los elementos de un componente nuncan pueden tener menos ámbito que sus clases padres. El ámbito de los elementos, en orden de más restrictivo a menos, es: Private, Protected, Public y Published. Con la herencia, sólo se puede conseguir que los elementos heredados se hagan menos restrictivos, nunca más restrictivos. Con la única excepción de los elementos declarados como Private, a los que no se les puede cambiar el ámbito. Por tanto, los únicos cambios permitidos de ámbito serán: - De Protected a Public. - De Protected a Published. - De Public a Published. La única manera de conseguir "ocultar" elementos, será por tanto: - Buscar el componente que tenga la máxima de la funcionalidad que requiera nuestro componente con las propiedades, métodos y/o eventos que no nos interese tener, declarados como Protected o no implementados. - Elegir dicho componente como clase base para desarrollar el nuestro. - Implementar en nuestro componente todo lo que falte. Una buena forma de hacer esto es partir de todas las clases cuyos nombres son del estilo a TCustomXXX, pues precisamente implementan los elementos como protected para que nosotros al heredar hagamos público lo que nos interese: TCustomPanel, TCustomControl, TCustomLabel, TCustomButtom, etc. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|