Introducción:Los objetivos de Desarrollo Sostenible
Curso basico de foxpro 9 capitulo 9
1. CURSO BASICO DE FOXPRO 9
CAPITULO 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
2. 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:
5. EditBox 1:
Height: 348
Left: 25
Top: 168
Width: 192
Name: EdtNombres
Enabled: .F. Falso
EditBox 2:
Height: 348
Left: 217
Top: 168
Width: 100
Name: EdtColores
Enabled: .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
6. 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
7. 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
8. 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.
9. 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’
10. 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:
11. 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ón
0 (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:
12. 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: