Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4
ESTRUCTURAS DE MULTIPLES ALTERNATIVAS
En la temática anterior se mostro como hacer que el compilador escoja entre dos
alternativas usando el enunciado if – Then - Else. Sin embargo, en algunos casos
puede requerirse que el compilador escoja de una lista de más de dos opciones. Hay dos
métodos:
a) El enunciado if anidado
b) El enunciado case
El Enunciado if anidado
El formato general de un if de esta clase:
If condición1 then
Sentencia1
else if condicion2 then
Sentencia2
else if condición3 then
Sentencia3
…..
Else
SentenciaX
end;
La sentencia Case
Una sentencia Case tiene la forma:
Case selector of
Lista1: sentencia1;
……
ListaN: sentenciaN;
else
sentencia;
end;
el estudiante debe recordar que selector es un tipo cardinal. Las listas pueden ser:
a) Un numeral, una constante declarada
b) Un subrango de la forma: Primero …. Ultimo, en el que el primero es menor o
igual que ultimo.
c) Una lista de la forma ítem1, ….., ItemN.
1
Cuadro de Edición la fecha de su nacimiento en un formato similar al siguiente modelo
(ud. No deberá ingresar ni el día ni el mes de su nacimiento).
Calculador de Fecha de Nacimiento
Especifique la suma S = 12d + 31m : 170
Usted ha nacido el : 09 de febrero
Programa ejecutándose:
3
Cierta empresa auspiciadora desea premiar l a participación nuestro seleccionado en la Copa
América incentivando a cada jugador en función a las anotaciones conseguidas por el equipo en cada
encuentro. Estos recibirán una bolsa que se calculara multiplicando el número de goles convertidos en una
fecha por un Factor, el cual se obtiene de acuerdo a la siguiente tabla:
4
Asociemos un procedimiento al control Edit1 para el evento OnKeyPress:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
pInicial,pFinal,Factor:integer;
begin
if key=#13 then
begin
try
pInicial:=StrToInt(Edit1.Text);
Case pInicial of
0 : Factor:=0;
1..5 : Factor:=6000;
6..8 : Factor:=9000;
9,10 : Factor:=10000
End;
if pInicial<=10 then
begin
pFinal:=pInicial*Factor;
Edit2.Text:=IntToStr(Factor);
Edit3.Text:=IntToStr(pFinal)
end;
Edit1.SetFocus;
Edit1.SelStart:=0;
Edit1.SelLength:=Length(Edit1.Text)
except
on EConvertError do
ShowMessage('El número es muy grande')
end
end;
if not (key in ['0'..'9',#8]) then key:=#0
end;
El programa ejecutándose:
5
3) MiniEditor de Textos
Elaborar una aplicación que permita cambiar el formato de un texto de entrada:
Siga los siguientes pasos:
1. Crear una nueva aplicación con formulario
2. En el formulario colocar los siguientes componentes: 1 etiqueta, 1 cuadro de
edición, 3 cajas agrupadoras, 2 botones, 3 casillas de verificación, 1 control
RadioGroup1 y 3 botones de radio.
3. Modificar las propiedades de los componentes:
6
Al diseñar una interfaz de usuario como la mostrada en la siguiente figura asegúrese de
colocar las casillas de verificación y los botones de Opción dentro de las cajas
agrupadoras:
Consideraciones:
El color inicial del Cuadro de Edición debe ser Rojo Claro. Use la propiedad Color desde
la propiedad genérica Font.
En la caja agrupadora Color, el Rojo es la opción seleccionada inicialmente. Use la
propiedad Checked.
El formulario debe ser de tamaño fijo, se podrá minimizar pero no se podrá maximizar.
Use las propiedades BordeStyle, BorderIcons, (biMinimize, biMaximize).
La ruta para el icono del formulario es: D\Imágenes\Editor.ico.
Para aplicar algún formato al texto en el cuadro de edición declararemos la variable
estilos la que almacena un conjunto de estilos según la selección actual de los controles.
Var
Estilos:TFontStyle;
De modo similar programe los eventos para las otras casillas. En Cursiva use la
propiedad Font/Style(fsItalic) y en subrayado use la propiedad FontStyle(fsUnderline).
Haga doble clic sobre el botón de opción Rojo, aparecerá la ventana de código para el
suceso OnClick. Dentro del procedimiento de evento escriba:
De forma similar programe los botones Verde y Azul. Use los colores clGreen y clBlue
respectivamente.
procedure TfrmMensaje.rbVerdeClick(Sender: TObject);
begin
edtMensaje.Font.Color:=RGB(0,255,0)
end;
procedure TfrmMensaje.rbAzulClick(Sender: TObject);
begin
edtMensaje.Font.Color:=RGB(0,0,255)
end;
Ahora haga doble clic en control RadioGroup1. La propiedad ItemIndex indicara cual
botón ha sido seleccionado. En el editor de código digite los siguiente:
Programa ejecutándose:
9
4) Creando una Nueva Ficha
10
Position 32
LargeChange 10
SamillChange 1
Button1 Caption &Retomar
La función Chr devuelve un carácter de acuerdo al código que aparece entre paréntesis.
En el formulario Form1 haga doble clic sobre el botón Ver Código y escriba la
instrucción necesaria para mostrar el formulario Form2 en forma Modal.
Requerimos enlazar la segunda unidad o modulo con la primera, para conseguirlo siga
estos pasos:
Implementation
Uses unit2;
{$R *.DFM}
En el formulario Form2 haga doble clic en el botón Retornar y escriba el código para
cerrar el formulario, use el método Close del formulario.
procedure TfrmMensaje.btnAceptarClick(Sender: TObject);
begin
Close
end;
11
Finalmente al ejecutar el formulario Form2 se debe mostrar así:
12
Establecidas las propiedades de los controles, la interfaz de usuario debe tener el
siguiente aspecto:
Luego de diseñar la interfaz de usuario, el paso siguiente consiste en unir código a los
controles del formulario. El código debe realizarse de manera tal que cuando ingresemos
una temperatura (grados centígrados) en el control Edit1 y pulsemos Enter, los controles
Edit2, Edit3 y edit4 deben mostrar las conversiones en grados farenheit, kelvin y rankine,
respectivamente. La figura es que si ingresamos una temperatura en un control Edit y
pulsamos Enter, en el resto de los controles Edit deben mostrar la conversión
correspondiente.
Formula de conversión:
15