curso basico de foxpro 9 capitulo 9
TRANSCRIPT
CURSO BASICO DE FOXPRO 9CAPITULO 9: DO CASE Y OPTION
Este capítulo muestra la función del control OptionGroup, además daremos uso de la herramienta de decisión Do Case … EndCase y también utilizaremos un control nuevo EditBox o Cuadro de Edición.
Abrimos el proyecto Mis Ejercicios, que es el proyecto que hemos creado en este curso.Crearemos un formulario nuevo con el nombre SeleccionarColor en el Administrador de proyectos, tal cual como hemos hecho con los demás formularios anteriores. El formulario tendrá el siguiente diseño:
Formulario: SeleccionarColor
El formulario tiene como objetivo, ingresar un nombre, seleccionar un color y agregarlos en forma de lista a los cuadros de edición
Los controles a usar son:
Label: LblNombre y LblSeleccion
TextBox: TxtNombre
EditBox: EdtNombres y EdtColores
CommandButton: CmdSalir y CmdAgregar
OptionGroup: OpgColores que contendrá:Option: 1-OptAzul, 2-OptAmarillo y 3-OptBlanco
Shape: ShpAzul, ShpAmarillo y ShpBlanco
Valores ingresados a las propiedades de cada objeto:
Formulario:
AutoCenter: .T. –VerdaderoBorderStyle: 2 -Borde de línea dobleCaption: Seleccionar ColorHeight: 573Width: 342
Label 1:AutoSize: .T.Caption: NombreLeft: 23Top: 24Name: LblNombre
Label 2:AutoSize: .T.Caption: Seleccionar ColorLeft: 23Top: 24Name: LblSeleccion
Textbox:Height: 23Left: 84Top: 24Width: 144Name: TxtNombreMaxLength: 20
OptionGroup:BackStyle: 0 –TransparenteButtonCount: 3Height: 46Left: 15Top: 83Width: 312Name: OpgColores
Option 1:AutoSize: .T.Caption: (Nada)Left: 45Top: 14Name: OptAzul
Option 2:AutoSize: .T.Caption: (Nada)Left: 141
Top: 14Name: OptAmarillo
Option 3:AutoSize: .T.Caption: (Nada)Left: 249Top: 14Name: OptBlanco
Shape 1:BackColor: 0,0,255Height: 40Left: 44Top: 86Width: 48Name: ShpAzul
Shape 2:BackColor: 255,255,128Height: 40Left: 138Top: 86Width: 48Name: ShpAmarillo
Shape 3:BackColor: 255,255,255Height: 40Left: 247Top: 86Width: 48Name: ShpBlanco
Command Button 1:Caption: AgregarHeight: 27Left: 120Top: 133Width: 80Name: CmdAgregar
Command Button 2:Caption: SalirHeight: 27Left: 240Top: 528Width: 80Name: CmdSalir
EditBox 1:Height: 348Left: 25Top: 168Width: 192Name: EdtNombresEnabled: .F. Falso
EditBox 2:Height: 348Left: 217Top: 168Width: 100Name: EdtColoresEnabled: .F. Falso
Código del Programa:
Form.Init
En este código usamos set confirm on para no permitir que el cuadro de texto txtNombre pierda el enfoque cuando escribamos un nombre que sobrepase el límite del número de caracteres, el máximo número de caracteres que puede tener el cuadro de texto se estableció a 20, MaxLength = 20.
Luego se dan los valores iniciales a los cuadros de edición, que actuaran como subtítulos.
CmdAgregar.Click
En este código se valida con la instrucción de decisión if, si el cuadro de texto txtnombre esta vacío o no.
En caso de no estar vacío:Se agrega el nombre al cuadro de edición EdtNombre.Se usa la instrucción Do Case para saber cual de los option seleccionó el usuario y así agregarle el nombre del color seleccionado al cuadro de edición EdtColores.Se limpia el cuadro de texto.
En caso de estar vacío:Se envía un mensaje con la caja de mensajes para advertir que no ha ingresado el nombre
Por último se envía el enfoque al cuadro de texto txtNombre. Para que se ingrese un nombre
CmdSalir.Click
Este código cierra el formulario cuando hacemos clic en el botón salir
Ejemplo del formulario en Ejecución
RESUMEN DE LAS NUEVAS PROPIEDADES Y EXTRAS USADOS
Propiedad MaxLength:
Especifica la longitud máxima (en caracteres) que puede escribirse en un control EditBox, TextBox o ComboBox. Para estos controles, utilice MaxLength para limitar la cantidad de texto que un usuario pueda ingresar en un cuadro de edición, cuadro de texto, o cuadro combinado.
Comando Set Confirm: On / Off
Especifica si puede salir de un cuadro de texto escribiendo más allá del último carácter del cuadro.
Parámetros
ON Especifica que no puede salir de un cuadro de texto escribiendo más allá del último carácter del cuadro. Para salir del cuadro de texto, puede presionar ENTRAR, TAB o cualquiera de las teclas de dirección, para moverse de un cuadro de texto a otro control.
OFF Especifica que puede salir de un cuadro de texto escribiendo más allá del último carácter del cuadro. El punto de inserción, al llegar al último carácter de un cuadro de texto, se mueve hasta el siguiente control y suena el tono acústico (si SET BELL está activado).
Comando Do Case … EndCase:
Ejecuta el primer conjunto de comandos cuya expresión condicional de como resultado verdadero (.T.).
Parámetros
CASE lExpression1 Commands ... Cuando se encuentre la primera expresión CASE con el valor verdadero (.T.), se ejecutará el conjunto de comandos que haya a continuación. La ejecución del conjunto de comandos continuará hasta encontrar la siguiente expresión CASE o ENDCASE. La ejecución se reanuda en el comando que hay inmediatamente a continuación de ENDCASE.
Si una expresión CASE tiene el valor falso (.F.), se pasará por alto el conjunto de comandos que le siguen hasta la siguiente cláusula CASE.
Sólo se ejecuta un conjunto de comandos. Se trata de los primeros comandos cuya expresión CASE se evalúe con el resultado verdadero (.T.). Se pasan por alto todas las expresiones CASE posteriores que tengan el valor verdadero (.T.).
OTHERWISE Commands Si todas las expresiones CASE dan como resultado falso (.F.), OTHERWISE determinará si se ejecuta otro conjunto de comandos adicional.
Si incluye OTHERWISE, se ejecutará el conjunto de comandos que sigue a OTHERWISE y la ejecución saltará al primer comando que hay a continuación de ENDCASE.
Si omite OTHERWISE, la ejecución saltará al primer comando que hay a continuación de ENDCASE.
Observaciones
DO CASE se utiliza para ejecutar un conjunto de comandos de Visual FoxPro según el valor de una expresión lógica. Cuando se ejecuta DO CASE, se evalúan cada una de las expresiones lógicas sucesivas; los valores de las expresiones determinan el conjunto de comandos que se ejecuta.
Se admiten observaciones después de DO CASE y ENDCASE, si se incluyen en la misma línea. Estos observaciones se pasan por alto durante la compilación y ejecución del programa.
Ejemplo
la siguiente función devuelve el nombre del mes dependiendo del numero de mes que se ha enviado como parámetro.
Lparameter nMes as integer
Do Case
Case nMes = 1
Return ‘ENERO’
Case nMes = 2
Return ‘FEBRERO’
Case nMes = 3
Return ‘MARZO’
Case nMes = 4
Return ‘ABRIL’
Case nMes = 5
Return ‘MAYO’
Case nMes = 6
Return ‘JUNIO’
Case nMes = 7
Return ‘JULIO’
Case nMes = 8
Return ‘AGOSTO’
Case nMes = 9
Return ‘SEPTIEMBRE’
Case nMes = 10
Return ‘OCTUBRE’
Case nMes = 11
Return ‘NOVIEMBRE’
Case nMes = 12
Return ‘DICIEMBRE’
OTHERWISE
MESSAGEBOX(‘Número de mes invalido’,0,’ERROR’)
ENDCASE
Control OptionGroup:
Crea un grupo de botones de opción.
Los grupos de botones de opción son contenedores que alojan botones de opción. Un grupo de botones de opción permite realizar una selección en un conjunto de botones. Al elegir un botón de opción, la selección se actualiza y se libera la opción anterior. Una viñeta al lado del botón de opción indica la opción actual. Por ejemplo, los botones de opción pueden emplearse para dirigir los resultados a un archivo, una impresora o una ventana.
El valor de la propiedad Value del optionGroup es el valor numérico que indica el control option seleccionado en ese momento.
Control OptionButton:
Crea un botón de opción sencillo.
Un botón de opción sencillo sólo puede agregarse a un grupo de botones de opción.
Para un control OptionButton, los valores de la propiedad Value son:
Valor Descripción0 (Predeterminado) Indica que el botón no está
seleccionado.1 Indica que el botón está seleccionado.
Control EditBox:
Los cuadro de edición tienen un funcionamiento parecido al de los textbox o cuadro de texto, la diferencia está en que si presione la tecla enter y si el área del cuadro de edición permite varias filas, entonces este no perderá el enfoque sino que pasara a la siguiente línea. Un cuadro de edición que permita una sola línea actúa igual que un textBox.
Los cuadro de edición son usados normalmente para escribir notas u observaciones de algo en particular.
Ejercicio propuesto:
Crear el siguiente formulario:
El formulario tiene como objetivo llenar los cuadros de edición con los nombres ingresados en el cuadro de texto, dependiendo del color que se elija.
Si se elije el color azul el nombre pasara a la lista de azules, si elije amarillo irá a lista de amarillos y si elije blanco se agregará el nombre al cuadro de edición de blancos.
Además se debe llevar un conteo para cada lista para mostrar en un cuadro de texto el total de nombres que eligieron azul, amarillo y blanco.
Ejemplo del formulario propuesto en ejecución: