Anular los valores predeterminados de las clases
Al agregar a un formulario objetos basados en una clase definida por el usuario, puede cambiar el valor de todas las propiedades de la clase que no estén protegidas, anulando los valores predeterminados. Si posteriormente cambia las propiedades de clase en el Diseñador de clases, no se verá afectada la configuración del objeto del formulario. Si no ha cambiado el valor de una propiedad del formulario y cambia el de la clase, el cambio también surtirá efecto en el objeto.
Por ejemplo, un usuario puede agregar a un formulario un objeto basado en su clase y cambiar la propiedad BackColor de blanco a rojo. Si cambia a verde la propiedad BackColor de la clase, el objeto del formulario del usuario seguirá teniendo un valor rojo para el color de fondo. Por otra parte, si el usuario no cambia la propiedad BackColor del objeto y usted cambia a verde el color de fondo de la clase, la propiedad BackColor del objeto del formulario heredará el cambio y también será verde.
Llamar al código de métodos de clase primaria
Un objeto o una clase que se basa en otra clase hereda automáticamente la funcionalidad de la clase original. Sin embargo, puede anular fácilmente el código de métodos heredado. Por ejemplo, puede escribir nuevo código para el evento Click de una clase después de haberla convertido en subclase o después de agregar al contenedor un objeto basado en la clase. En ambos casos, el nuevo código se ejecuta en tiempo de ejecución; el código original no se ejecuta.
Sin embargo, es más frecuente que quiera agregar funcionalidad a la nueva clase u objeto conservando la funcionalidad original. De hecho, una de las decisiones clave que tiene que hacer en la programación orientada a objetos es qué funcionalidad va a incluir a nivel de clase, a nivel de subclase y a nivel de objeto. Puede optimizar el diseño de la clase con la función DODEFAULT( ) o el operador de resolución de alcance (::) para agregar código a distintos niveles de la jerarquía del contenedor o de la clase.
Agregar funcionalidad a subclases
Puede llamar al código de la clase primaria desde una subclase mediante la función DODEFAULT( ).
Por ejemplo, cmdOK
es una clase de botón de comando almacenada en Buttons.vcx, ubicado en el directorio ...\Samples\Classes de Visual FoxPro. El código asociado al evento Click de cmdOk
libera el formulario que contiene el botón. cmdCancel
es una subclase de cmdOk
de la misma biblioteca de clases. Para agregar funcionalidad a cmdCancel
para descartar cambios, por ejemplo, puede agregar el código siguiente al evento Click:
IF USED( ) AND CURSORGETPROP("Buffering") != 1
TABLEREVERT(.T.)
ENDIF
DODEFAULT( )
Como los cambios se escriben de forma predeterminada en una tabla almacenada en búfer cuando se cierra la tabla, no tiene que agregar código TABLEUPDATE( ) a cmdOk
. El código adicional de cmdCancel
deshace los cambios realizados en la tabla antes de llamar al código de cmdOk
, la clase primaria, para liberar el formulario.
Vea también
Programación orientada a objetos | Clases y objetos: los bloques funcionales de las aplicaciones | Clases de Visual FoxPro | Preparar la creación de clases | Crear clases | Modificar una definición de clase | Crear una subclase de una definición de clase | Utilizar el Diseñador de clases | Proteger y ocultar miembros de clase | Especificar la apariencia en tiempo de diseño | Crear, copiar y eliminar archivos de biblioteca de clases | Agregar clases a formularios | Referencias a objetos de la jerarquía de contenedores | Establecer propiedades | Llamar a métodos | Responder a eventos