Ejemplo de manipulación de objetos
El ejemplo siguiente establece propiedades y llama a código de evento desde diversos objetos de un conjunto de formularios. El ejemplo incluye dos formularios, frmLeft y frmRight, en un conjunto de formularios.
Conjunto de formularios de ejemplo en el Diseñador de formularios
Las dos casillas de verificación y el botón de comando de frmLeft están asociados a código de evento. El nombre del cuadro de texto de frmLeft es txtInput
.
Código de evento para objetos de LeftForm
Objeto | Evento | Código |
---|---|---|
chkItalic | Click |
|
chkBold | Click |
|
cmdClear | Click |
|
Establecer una propiedad de otro control en el mismo formulario
Puede establecer las propiedades de un control desde el código de evento de otro con la palabra clave THISFORM o la propiedad Parent. Los dos comandos siguientes se ejecutan cuando un usuario hace clic en las casillas de verificación Cursiva y Negrita, estableciendo las propiedades correspondientes del cuadro de texto:
THISFORM.txtInput.FontItalic = .T.
THIS.Parent.txtInput.FontBold = .T.
En este caso, THISFORM y THIS.Parent pueden emplearse indistintamente.
Conjunto de formularios de ejemplo en tiempo de ejecución
El código del evento Click para cmdClear
utiliza THISFORM para restablecer los valores de los demás controles del formulario.
Establecer las propiedades de otro formulario
También puede establecer propiedades de un formulario desde otro formulario distinto. Form2 contiene 5 botones de comando. El primer botón del formulario tiene este código en su evento Click:
THISFORMSET.frmLeft.Caption = ;
ALLTRIM(ThisFormSet.frmLeft.txtInput.Value)
Observe que debe hacer referencia al conjunto de formularios y al formulario cuando se establecen propiedades desde otro formulario distinto.
El usuario hace clic en el botón de comando “Cambiar el título del formulario izquierdo” en el formulario de la derecha
El código de evento Click del segundo botón de comando de frmRight
muestra cómo se establece una propiedad de un formulario desde un objeto del formulario:
THISFORM.Caption = ;
ALLTRIM(ThisFormSet.frmLeft.txtInput.Value)
Si el usuario elige este botón, el título de frmRight cambiará al valor del cuadro de texto de frmLeft.
Acceso a objetos de formularios distintos
El siguiente código del evento Click del botón de comando Cambiar la configuración de negrita cambia el valor de la casilla de verificación Negrita de frmLeft y llama al código de evento asociado a este control.
THISFORMSET.frmLeft.chkBold.Value = ;
NOT THISFORMSET.frmLeft.chkBold.Value
THISFORMSET.frmLeft.chkBold.InteractiveChange
La última línea del ejemplo llama al evento InteractiveChange de chkBold
. También podría llamar a este procedimiento mediante el comando siguiente:
THISFORMSET.frmForm1.chkBold.InteractiveChange( )
Si se omite esta llamada al procedimiento, cambiará el valor de la casilla de verificación, pero no cambiará la propiedad FontBold del cuadro de texto.
El usuario hace clic en el botón de comando “Cambiar la configuración de negrita” en el formulario de la derecha
Comprobar propiedades y llamar a código de método de otro formulario
El código siguiente del evento Click del botón de comando Ocultar formulario izquierdo oculta o muestra frmLeft, según el valor de la propiedad Visible, y cambia el título del botón según corresponda:
IF ThisFormSet.frmLeft.Visible
ThisFormSet.frmLeft.Hide
THIS.Caption = "Show Left Form"
ELSE
ThisFormSet.frmLeft.Show
THIS.Caption = "Hide Left Form"
ENDIF
Observe que la palabra clave THIS se utiliza en el código de evento de un control para hacer referencia a propiedades del control.
El usuario hace clic en el botón de comando Ocultar formulario izquierdo en el formulario de la derecha
El comando siguiente del evento Click del botón de comando Salir libera el conjunto de formularios; esto hace que se cierren ambos formularios:
RELEASE ThisFormSet
Vea también
Establecer propiedades en tiempo de ejecución | Ocultar un formulario | Crear formularios | Transferir parámetros a un formulario | Guardar un formulario como HTML