Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:30:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi