Compartir a través de


Preparar la creación de clases

Es conveniente poder usar clases en muchos contextos distintos. Un diseño inteligente le permitirá decidir con mayor efectividad qué clases desea diseñar y qué funcionalidad va a incluir en la clase.

Decidir cuándo crear clases

Puede crear una clase para cada control y cada formulario que utilice, aunque éste no es el modo más efectivo de diseñar aplicaciones. Es muy probable que acabe con múltiples clases que tengan prácticamente la misma función y que deban mantenerse por separado.

Encapsular funcionalidad genérica

Cree una clase de control para funcionalidad genérica. Por ejemplo, los botones de comando que permiten al usuario mover el puntero de registro en una tabla, un botón para cerrar un formulario y un botón de ayuda pueden guardarse como clases y agregarse a formularios en cualquier momento que desee que los formularios tengan esta funcionalidad.

Puede exponer propiedades y métodos en una clase de modo que el usuario pueda integrarlos en el entorno de datos concreto de un formulario o un conjunto de formularios.

Proporcionar una apariencia y un uso coherentes

Puede crear clases de conjunto de formularios, de formulario y de control con una apariencia característica, de modo que todos los componentes de la aplicación tengan la misma apariencia. Por ejemplo, podría agregar gráficos y patrones de color específicos a una clase de formulario y utilizarla como plantilla para todos los formularios que cree. Podría crear una clase de cuadro de texto con una apariencia característica, como un efecto de sombreado, y usar esta clase en la aplicación en cualquier momento que desee agregar un cuadro de texto.

Decidir qué tipo de clase va a crear

Visual FoxPro permite crear distintos tipos de clases, cada uno con sus propias características. Especifique el tipo de clase que desea crear en el cuadro de diálogo Nueva clase o en la cláusula AS del comando CREATE CLASS.

Clases de base de Visual FoxPro

En el Diseñador de clases puede crear subclases para la mayoría de las clases de base de Visual FoxPro.

Clases de base de Visual FoxPro

ActiveDoc Custom Label PageFrame
CheckBox EditBox Line ProjectHook
Column* Form ListBox Separator
CommandButton FormSet OLEBoundControl Shape
CommandGroup Grid OLEContainerControl Spinner
ComboBox Header* OptionButton* TextBox
Container Hyperlink (Objeto) OptionGroup Timer
Control Image Page* ToolBar

* Estas clases son parte integral de un contenedor primario y no pueden usarse como subclases en el Diseñador de clases.

Todas las clases de base de Visual FoxPro reconocen el siguiente conjunto mínimo de eventos:

Evento Descripción
Init Ocurre cuando se crea el objeto.
Destroy Ocurre cuando el objeto se libera de la memoria.
Error Ocurre siempre que tiene lugar un error en procedimientos de evento o de método de la clase.

Todas las clases de base de Visual FoxPro tienen el siguiente conjunto mínimo de propiedades:

Propiedad Descripción
Class El tipo de clase de que se trata.
BaseClass La clase de base de la que se deriva, como Form, Commandbutton, Custom, etc.
ClassLibrary La biblioteca de clases en la que está almacenada.
ParentClass La clase de la que se deriva la clase actual. Si la clase se deriva directamente de una clase de base de Visual FoxPro, la propiedad ParentClass es la misma que la propiedad BaseClass.

Ampliación de las clases de base de Visual FoxPro

Puede convertir en subclases estas clases para establecer sus propias propiedades de control predeterminadas. Por ejemplo, si quiere que los nombres predeterminados de controles que agregue a formularios de sus aplicaciones reflejen automáticamente sus convenciones de nombres, puede crear clases basadas en las clases de base de Visual FoxPro para hacerlo. Puede crear clases de formulario con una apariencia o un comportamiento personalizado para que sirvan como plantillas para todos los formularios que cree.

También podría convertir en subclases las clases de base de Visual FoxPro para crear controles con funcionalidad encapsulada. Si quiere que un botón libere formularios cuando haga clic en él, puede crear una clase basada en la clase de botón de comando de Visual FoxPro, establecer como título "Salir" e incluir el siguiente comando en el evento Click:

THISFORM.Release

Puede agregar este nuevo botón a cualquier formulario de la aplicación.

Crear controles con múltiples componentes

Las subclases no están limitadas a clases de base únicas. Puede agregar múltiples controles a una única definición de clase de contenedor. Muchas de las clases de la biblioteca de clases de ejemplo de Visual FoxPro están incluidas en esta categoría.

Creación de clases no visuales

Una clase basada en la clase personalizada de Visual FoxPro no tiene un elemento visual de tiempo de ejecución. Puede crear métodos y propiedades para la clase personalizada en el entorno del Diseñador de clases. Por ejemplo, podría crear una clase personalizada llamada StrMethods e incluir en ella una serie de métodos para manipular cadenas de caracteres. Podría agregar esta clase a un formulario con un cuadro de edición y llamar a los métodos cuando lo necesitara. Si tuviera un método llamado WordCount, podría llamarlo cuando lo necesitara:

THISFORM.txtCount.Value = ;
  THISFORM.StrMethods.WordCount(THISFORM.edtText.Value)

Las clases no visuales (como el control personalizado y el control de tipo cronómetro) tienen una representación visual, únicamente en tiempo de diseño en el Diseñador de formularios. Establezca la propiedad de imagen de la clase personalizada como el archivo .bmp que desea mostrar en el Diseñador de formularios cuando se agregue la clase personalizada a un formulario.

Vea también

Programación orientada a objetos | Clases y objetos: los bloques funcionales de las aplicaciones | Clases de Visual FoxPro | 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 | Anular los valores predeterminados de las clases | Referencias a objetos de la jerarquía de contenedores | Establecer propiedades | Llamar a métodos | Responder a eventos