flecha_roja_izda.gif (965 bytes)

Primera parte Segunda parte Tercera parte
 

 PROGRAMACIÓN VISUAL EN DELPHI

Programas de simulación.

Elige crear un nuevo proyecto. Añade al formulario los controles de etiqueta (Label) que ves a continuación. Modifica su propiedad Font eligiendo distintos tipos de letra y cambia el contenido de su propiedad Caption.

Selecciona la pestaña Additional de la barra de componentes y haz click sobre el objeto Image.

Haz click sobre el formulario para que aparezca un recuadro donde situar una imagen y a continuación doble click sobre él para que aparezca la ventana del editor de imágenes (Picture Editor). Pulsa Load para seleccionar un fichero y elige DADO.BMP (Búscalo en \\PC3\DELPHI\PRACTICA).

Por último selecciona el objeto Button y añade un botón al formulario. Modifica su propiedad Name y llámalo Tirada.

Una vez situados todos los componentes (etiquetas de texto, recuadro de imagen y botón de control), podemos añadir el código al programa:

Haz doble click sobre la opción OnClick del botón Tirada y añade al procedure que aparece el código siguiente:

Var X:Integer;

X:=Random(6)+1;

Numero.Caption:=IntToString(X);

Observa que el componente llamado Numero es una etiqueta de texto

que contiene como único texto una cifra. Como puedes ver, todo el código se reduce a dos instrucciones:

Almacenar en la variable entera X un número al azar del 1 al 6 (instrucción Random), y mostrar en la propiedadCaption de la etiqueta Numero ese resultado convertido a texto (instrucción IntToStr).

Estas instrucciones se ejecutan cada vez que (con el programa funcionando) pulses el botón Tirada.

 

El efecto de relieve se consigue creando dos etiquetas Label con el mismo texto y el mismo tipo de letra, pero una en color blanco y otra encima con otro color. Para que la superior no tape a la que hay debajo tienes que poner su propiedad Transparent a true (activada). Desplázalas ligeramente arrastrándolas con el ratón para conseguir el efecto.

Ejecuta el programa y pulsa repetidamente sobre el botón para ver como el componente Label muestra diferentes números al azar. (El dado es simplemente un fichero BMP ¡ no esperes que se mueva!)

Puedes hacer que aparezca un mensaje emergente cada vez que hagas una tirada, añadiendo al procedimiento TiradaClick la instrucción: ShowMessage(' Ha salido el '+IntToStr(X));

Añade también un botón con la instrucción Close; para cerrar el programa.

 

Guárdalo en tu carpeta llamando a la Unit1 DADO.PAS y al proyecto PRDADO.PRJ.

 

Estos son los objetos utilizados en esta nueva práctica:

 

 

 

CALCULADORA ELEMENTAL

Una vez que los hayas puesto sobre el Form, observa que el programa los incorpora automáticamente al código, sin que tengas que escribir ni una sóla línea.

Para añadir código al programa de forma que al pulsar el botón + muestre la suma de los números introducidos, selecciona con el ratón ese botón y en el inspector de objetos la pestaña Events . Después haz doble click en el apartado OnClick, y añade instrucciones al procedimiento Tform1.Button1Click.

 Creamos una variable entera N para guardar el resultado de la suma. Observa que el contenido del campo de texto de los objetos Edit2 y Edit3 han de convertirse a formato numérico utilizando la función StrToInt( ) que significa Convertir una Cadena a Entero.

Después se muestra el resultado escribiéndolo en el campo de texto del objeto Edit1, pasándolo en este caso, de formato texto a numérico con la función IntToStr( ) . Añade el resto de los procedimientos a cada botón:

Observa que en el procedure correspondiente al botón : (dividir) la variable utilizada es real porque en ella se guarda el resultado de una división (no puede ser integer). La parte entera se guarda en la variable Entero y el resto en la variable Resto.

ESTOS SON LOS PROCEDIMIENTOS QUE TIENES QUE CREAR PARA QUE RESPONDAN A LAS PULSACIONES SOBRE LOS BOTONES + - x y /

procedure TForm1.Button1Click(Sender: TObject);

var n:integer;

begin

N:=StrToInt(Edit2.Text) + StrToInt(Edit3.Text);

Edit1.Text:=IntToStr(N);

end;

procedure TForm1.Button2Click(Sender: TObject);

var n:integer;

begin

N:=StrToInt(Edit2.Text) - StrToInt(Edit3.Text);

Edit1.Text:=IntToStr(N);

end;

 

procedure TForm1.Button3Click(Sender: TObject);

var n:integer;

begin

N:=StrToInt(Edit2.Text) * StrToInt(Edit3.Text);

Edit1.Text:=IntToStr(N);

end;

 

procedure TForm1.Button4Click(Sender: TObject);

var n:Real; {resultado de la división}

Entero, Resto:integer;

begin

N1:=StrToInt(Edit2.Text) / StrToInt(Edit3.Text);

Entero:= Trunc(N); {parte entera}

Resto:= StrToInt(Edit2.Text) Mod StrToInt(Edit3.Text);

Edit1.Text:= IntToStr(Entero) + ',' + IntToStr(Resto);

end;

 

ESTE ES EL CODIGO GENERADO AUTOMATICAMENTE AL SITUAR LOS COMPONENTES EN LA FICHA:

Unit Calculad;

Interface

uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: Tbutton;

Button2: Tbutton;

Button3: Tbutton;

Button4: TButton;

Label1: TLabel;

Label2: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

end.

PARA INTRODUCIR EL CODIGO, ACTIVA CADA BOTON, SELECCIONA LA PESTAÑA EVENTS Y HAZ DOBLE-CLICK SOBRE EL SUCESO OnClick

 

 

Reproductor multimedia (Imagen y sonido)

 

Para diseñar este programa selecciona de la paleta Standard el control Panel y colócalo sobre un nuevo formulario arrastrando con el ratón hasta que tenga un tamaño no demasiado grande.

 Ahora selecciona la pestaña System y haz click sobre el control MediaPlayer.

 

Colócalo en el formulario debajo del control Panel.

Con el control MediaPlayer seleccionado, haz doble-click sobre su propiedad AutoOpen para cambiarla a True (Para que el fichero multimedia se abra automáticamente al comenzar el programa).

 

También tienes que seleccionar en la propiedad Display del control multimedia el componente Panel1 para que la película se reproduzca dentro de él.

Ahora tienes que buscar el fichero de película que quieres reproducir:

Activa la propiedad FileName y haz click sobre los ...

Busca en el disco duro el fichero AVI llamado ORIGINS.AVI (u otro cualquiera)

Cuando aparezca el nombre del fichero en la propiedad FileName el programa está listo para funcionar.

Puedes añadir un componente Label y poner un título al programa.

Selecciona RUN del menú de Delphi y cuando el programa comience pulsa Play.

Guardalo en tu carpeta con el nombre AVI.PAS para la Unit y PRAVI.PRJ para el proyecto.

 

El reproductor MediaPlayer puede reproducir, además de ficheros AVI también otro tipo de ficheros como los MID (música).

Añade otro control de este tipo, debajo del anterior y, en la propiedad FileName, pulsa sobre los ... para buscar un fichero de sonido en el disco duro.

Cuando lo encuentres activa la propiedad AutoOpen (True) y ejecuta el programa de nuevo.

Ahora, además de poder ver la película , puedes también oir la música pulsando sobre el botón Play del segundo control.

Guarda de nuevo el programa en tu carpeta con las modificaciones.

 

Además de los ficheros MID prueba a reproducir ficheros WAV, buscándolos en el disco duro.

 

Para que el control MediaPlayer muestre sólo los botones Play, Pausa y Stop activa la propiedad VisibleButtons y pon a False los botones que no quieras que aparezcan.

 

PROGRAMACIÓN VISUAL EN DELPHI

 

 


 

 

 

Programas educativos.

En este ejemplo vas a crear un programa de preguntas y respuestas con un contador de aciertos.

Selecciona en la opción File del menú New Project y elige crear un projecto en blanco (Blank project). En el formulario añade una etiqueta de texto y escribe en la propiedad Caption el título del programa: TEST DE CAPITALES. Modifica la propiedad Font seleccionando el color y el tipo de letra que quieras.


En la pestaña de componentes selecciona el componente ListBox (lista de elementos) y arrastra con el ratón sobre el formulario para situarlo.

Modifica sus propiedades Font (Times New Roman 14 y color Blanco) y Color (Fondo del ListBox).

Cambia el nombre a Preguntas (propiedad Name) y sitúalo centrado en la parte superior del formulario.

Para introducir texto en este componente, haz doble click sobre la propiedad Items.

Escribe las preguntas que ves en la imagen y pulsa OK cuando termines. Para modificar el espacio que hay entre las líneas, cambia el valor de la propiedad ItemHeight (altura de las lineas) a 25.

 

Ahora vas a añadir otro componente: el TcomboBox que sirve para seleccionar un elemento de una lista.

Selecciónalo y arrastra sobre el formulario para situarlo.

 

 

 

 

 

 

 

 

 

Modifica las propiedades Font, Color, ItemHeight y Name (llama al componente Respuestas).

Para escribir el texto con las respuestas pulsa sobre los ... de la propiedad Items y escribe el nombre de las capitales como ves en la imagen.

Para mostrar los aciertos añade un componente Tlabel y llámalo Contador (propiedad Name), en Caption pon un cero)

Y por último inserta en el formulario un botón con icono (Componente BitBtn en la pestaña Additional) y modifica sus propiedades:

Llámalo Corregir (propiedad Name). Estos componentes, a diferencia del componente Tbutton, permiten introducir una imagen (o icono) junto al texto del botón (propiedad glyph).

Pulsa sobre los ... de la propiedad para que aparezca el editor de imágenes (Picture Editor).

Para buscar una imagen y ponérsela al boton, explora en la unidad compartida de red //PC3/AULA/ICONS. En este ejemplo se ha seleccionado el icono llamado check2.bmp. Cuando lo encuentres pulsa Aceptar y despues OK y tendrás un botón con icono.

Para añadir código al botón, es decir, para que al pulsarlo con el programa funcionando, realice alguna acción haz doble click sobre el evento OnClick de la pestaña Events.

 

 

 

 

 

 

Cuando aparezca la pantalla con el código, añade entre las lineas begin y end; las instrucciones que ves en la imagen:

También necesitas añadir al código del programa una variable numérica N, para contar las respuestas acertadas, y un procedimiento que realice la operación de incrementar esa variable cada vez que coincida el número de pregunta seleccionada y el número de la respuesta elegida. La variable N se define en la zona de variables:

var

Form1: TForm1;

N :Integer;

...

y el procedimiento escríbelo completo a continuación del anterior (CorregirClick):

Procedure Aciertos;

begin

N:=N+1;

Form1.Contador.Caption:=IntToStr(N);

ShowMessage('Bien')

end;

Guarda el programa llamando TRIVIAL.PAS al código (Unit1) y PRTRIVIA.DPR al projecto. Pulsa Run.


IMAGENES ANIMADAS

 

Además de los ficheros AVI, existe otra forma más sencilla de mostrar animaciones en un programa: son las imágenes animadas (también llamados gif animados en las páginas de internet).

Consisten en un fichero BMP o GIF que contiene varias imágenes, una al lado de otra, que representan la secuencia de la animación. Por lo general suelen ser pocas secuencias (6, 8 o 10).

Al reproducirse de forma continuada dan la sensación de movimiento. En Internet es la forma más usual de mostrar animaciones en las páginas Web.

Para crear una imagen animada en Delphi inicia un nuevo proyecto (Blank Project) e inserta el componente TanimImage situado en la pestaña Additional. Arrastra sobre el formulario para situarlo y ponle como nombre Veleta (propiedad Name).

 

Haz doble click sobre su propiedad Picture y busca en la unidad compartida de red (//PC3/AULA/ANIMAGE) el fichero (anemome2.bmp)

Pon el número de cuadros que forman la animación en la propiedad ImageCount (este número es diferente si usas otro fichero animado). Para ver el efecto inmediatamente pon la propiedad Continuous a True.

Ahora introduce en el formulario dos componentes Tbutton (botones de control) para controlar la animación.

Llama al primero Activar (propiedad Name) y haz doble click sobre el evento OnClick para introducir el código que activa la animación:

Veleta.Continuous:=True;

Añade al lado, otro botón y llámalo Desactivar. El código que debes añadir es:

Veleta.Continuous:=False;

 

Ahora puedes poner en marcha el programa pulsando Run y comprobar cómo los botones de control activan y desactivan la animación (ponen su propiedad Continuous a True o a False).

 

Prueba a insertar otro BMP diferente en el componente TanimImage y modifica su propiedad ImageCount según el número de cuadros que tenga.

 

APLICACIONES DELPHI

Con Delphi pueden crearse simulaciones de control de periféricos. Con este ejemplo se podría controlar un dispositivo conectado a un puerto del ordenador, activándolo mediante la introducción de una clave.

Inicia un proyecto en blanco y añade un control Tpanel. Borra la propiedad Caption para que no aparezca el nombre:

Inserta un control MediaPlayer para reproducir un fichero de película:

 

Busca en la unidad compartida PC1/AULA el fichero PUERTA.AVI utilizando la propiedad FileName del control MediaPlayer.

Pon su propiedad AutoOpen a True y en la propiedad Display pon Panel1 para que se reproduzca dentro del panel.

Ahora introduce en el formulario un control Tedit para poder introducir un texto por teclado.Llámalo Clave (propiedad Name).

Ya sólo queda introducir el código de programa necesario (doble click en el evento OnChange) para que al escribir la clave correcta se active el reproductor multimedia mostrando la película:

procedure TForm1.claveChange(Sender: TObject);

begin

if clave.text='abcd' then mediaplayer1.play;

end;

Si quieres activar el byte de datos del puerto paralelo para controlar un periférico tendrías que añadir a este procedimiento la linea siguiente:

procedure TForm1.claveChange(Sender: TObject);

begin

if clave.text='abcd' then mediaplayer1.play;

PORT[$378]:=$01;

end;

 

La instrucción PORT[ $378 ] envía al puerto paralelo del ordenador (puerto de impresora) el byte 00000001, activando el bit de menor peso (20 ).

Para desactivarlo escribiríamos la instrucción PORT[$378]:=$0

Observa que los números que representan la dirección y el valor del byte están en formato hexadecimal.