You are on page 1of 4

Vamos a desarrollar el siguiente ejemplo usando el IDE Lazarus: Elaboraremos un programa al cual se

le darán como datos de entrada el año, mes, dia, hora, minutos y segundos. Y a partir de ellos iniciará
una secuencia de conteo. Supondremos que todos los meses son de 30 días y un día es de 24 horas.

Para ello vamos a utilizar los siguientes objetos:


Desde la paleta estándar seleccionamos 6 (Seis) objetos Tlabels, 7 (siete) objetos Tedit, 2 (dos) objetos
Tbutton.

Luego van a la paleta System y escogen un objeto Ttimer.

Al armar o construir la interfaz debe quedar algo más o menos así:

Recuerden que opara hacer la modificaión seleccionamos el objeto al cual queremos modificar la
propiedad.

A cada uno de los Tlabel les modificamos la propiedad caption y los personalizamos con: Año para
Tlabel1; Mes para Tlabel2; Día para Tlabel3; Hora para Tlabel4; Minutos para Tlabel5 y Segundos
para Tlabel6.

A cada uno de los Tedit les limpiamos o borramos lo que este escrito en su propiedad text. Y en la
propiedad name de cada uo de ellos escribimos: anio para Tedit1; mes para Tedit2; dia para Tedit3; hora
para Tedit4; min para Tedit5; seg para Tedit6. DEBEN TENER CUIDADO AL MOMENTO DE
CAMBIAR EL NOMBRE DE CADA TEDIT; ESTOS NO DEBEN TENER ESPACIO EN BLANCO.

Al objeto timer le modificamos la propiedad enabled y la colocamos en false; y la propiedad interval en


uno (1). si no funciona coloquemos la propiedad interval en 1000.

Al objeto Tbutton1 le modificamos la propiedad caption y le escribimos: Iniciar Cuenta. Y al objeto


Tbutton2 en la propiedad caption le escribimos: Salir.

Guardamos nuestro proyecto en una carpeta personal y con el nombre que ustedes deseen. Recordemos
que el IDE Lazarus genera código automáticamente cuando hacemos doble click sobre los objetos.

Listo una vez terminada nuestra interfaz o nuestro diseño escribimos el código; para ellos hacemos
doble click sobre el Tbuton1. Para que nos aparezca el lugar donde vamos a escribir el código en la
ventana “Editor del Código Fuente”: entonces escribimos:

Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;


Timer1.Enabled:= true;

Traten, en lo posible, de no copiar y pegar este código; si no digitenlo. El código anterior debe quedar
escrito en el siguiente procedimiento:

procedure TForm1.Button1Click(Sender: TObject);

Para el objeto Tbutton2 escribimos el siguiente código: Recuerden doble click sobre el objeto
Tbutton2.

Timer1.Enabled:= false;
close;

Eso debe ser escrito en el procedimiento:

procedure TForm1.Button2Click(Sender: TObject);


Vamos a hacer una pequeña validación en los Tedit para ellos escribimos en el evento OnKeyPress del
Tedit anio el siguinete código:

if not (Key IN['0'..'9', #8]) then


begin
key:=#0;
end;

Este código nos permitirá sólo escribir números en el edit y el valor #8 espara poder usar la tecla
BackSpace; esa misma que borra un carácter a la izquierda del cursor. Cuando se presione una tecla
distinta a un número se le asigan #0 a la variable key, que es el carácter vacio.

Para los demás TEdit ern el mismo evento escribimos el siguiente código:

anioKeyPress(mes, key);

Claro en cada evento podemos cambiar mes por el nombre del Tedit correspondiente; o simplemente lo
dejamos así. También funciona.

El código del objeto Ttimer es el siguiente: Es escrito en el evento OnTimer:


if (StrToInt(seg.Text) = 59 )And(StrToInt(min.Text) <= 59) then
begin
min.Text:= IntToStr(StrToInt(min.text) + 1);
IntToStr(StrToInt(min.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
if (StrToInt(min.Text) = 60)And(StrToInt(hora.text) <= 23) then
begin
min.text:= '0';
hora.Text:= IntToStr(StrToInt(hora.text) + 1);
IntToStr(StrToInt(hora.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
if (StrToInt(hora.Text) = 24)And(StrToInt(dia.text) <= 30) then
begin
hora.text:= '0';
dia.Text:= IntToStr(StrToInt(dia.text) + 1);
IntToStr(StrToInt(dia.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
if (StrToInt(dia.Text) = 31)And(StrToInt(mes.text) <= 12) then
begin
dia.text:= '1';
mes.Text:= IntToStr(StrToInt(mes.text) + 1);
IntToStr(StrToInt(mes.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
if (StrToInt(mes.text) = 13) then
begin
mes.text:= '1';
anio.Text:= IntToStr(StrToInt(anio.text) + 1);
IntToStr(StrToInt(anio.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' :
'+seg.Text;
end;
end;
end;
end;
seg.text:= IntToStr(0);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
Sleep(10);
end
else
begin
seg.Text:= IntToStr(StrToInt(seg.text) + 1);
IntToStr(StrToInt(seg.text) + 1);
Edit7.text:= anio.Text+' : '+mes.Text+' : '+dia.Text+' : '+hora.Text+' : '+min.Text+' : '+seg.Text;
Sleep(10);
end;

Podemos compilar con la orden CTRL + F9 Si no tenemos errores de transcripción podemos ejecutar el
programa con F9.

Actividad de Afianzamiento:

1. Consulta y estudia acerca del funcionamiento del objeto Ttimer.


2. Cambia el código para que funcione dentro de un objeto con un ciclo. Sugerencia utiliza un
ciclo While infinito.
3. Haga la interfaz y el código para el siguiente ejercicio:
Escriba un número en un Tedit y muestre su raiz cuadrada. OJO NO utilice la función sqrt.
Hagalo con cliclos.

Realicen la actividad en grupo de 2 (dos) estudiantes Máximo y Mínimo dos (2) Estudiantes. Lo envian
al correo mhzakzuk@gmail.com La entraga debe ser máximo hasta el día lunes 28 de febrero a las
11:55 P.M. OJO progama que no compile tiene cero. Programa que no haga lo que deba hacer tiene
cero.

You might also like