Crear una aplicación Windows basada en componentes visuales (VCL).
En Windows no son las aplicaciones las que manejan los recursos gráficos del sistema (ventanas, controles, etc). Es el propio Sistema Operativo el que realiza dicha tarea. Éste proporciona un conjunto de funciones denominado API de Windows que puede utilizar cualquier aplicación cada vez que desee manejar algún recurso gráfico.
El conjunto de funciones del API es muy extenso, poco estructurado y difícil de utilizar para el programador Los entornos de desarrollo como "Borland C++ Builder" aportan una biblioteca de clases C++ que facilita mucho las cosas al programador. En el caso de Borland C++ la biblioteca de clases se denomina VCL (Biblioteca de componentes visuales).
La VCL está diseñada en torno al concepto de componente. Los componentes son instancias (objetos) de clases derivadas de clases predefinidas dentro de la VCL. Los componentes normalmente representan elementos de la interfaz de la aplicación.
Al ser objetos, cada componente tiene asociado un conjunto de atributos (propiedades) y un conjunto de métodos.
También se asocia a cada componente un conjunto de eventos a los cuales responde. Estos eventos puede proceder del Sistema Operativo o de la propia aplicación. Cada componente se puede programar para responder a ciertos eventos. Para ello se añade un nuevo método dentro de la clase asociada al componente que será llamado automáticamente cada vez que se produzca el evento sobre el componente. Estos métodos son conocidos como manejadores de eventos.
Ventana donde se ubica los elementos del menú principal, la barra de herramientas y la paleta de componentes.
Ventana del IDE donde se cambia los valores iniciales de los atributos y donde se activan los eventos de los componentes.
![]() |
![]() |
---|
En la parte superior de la ventana se especifica el componente. Las propiedades (valores iniciales de los atributos) aparecen en la pestaña Properties y los eventos que se pueden activar asociados al componente en la pestaña Events.
Ventana cuadriculada donde se añaden los componentes que formarán parte de la interfaz de la aplicación.
Mediante el uso del ratón se puede seleccionar el componente de la paleta y arrastrarlo hasta su posición final dentro de la ventana. Una vez añadido el componente, se puede modificar sus propiedades o se puede activar los eventos con el Inspector de Objetos.
En primer lugar crearemos el directorio practica8. Tras ello, crearemos un nuevo proyecto del tipo Application. Guardaremos la unidad asociada (Unit1.cpp) con el nombre pract8.cpp y el proyecto con el mismo nombre que el directorio (practica8). Posteriormente, cambiaremos el nombre y el título del formulario con el inspector de objetos. Para ello cambiaremos la propiedad Caption por "Practica 8". Por último, construiremos el ejecutable y lo lanzaremos para comprobar el resultado.
El fichero pract8.h contiene la definición de la clase TForm1 (clase derivada de TForm) que representará la ventana principal de la aplicación. Dentro de pract8.cpp se incluirán la definición de los métodos de la clase.
El formulario principal tendrá el siguiente aspecto:
Está formado por 8 componentes: tres cadenas de texto estáticas (TLabel), tres entradas de texto (TEdit) y dos botones (TButton). Utilizando el ratón arrastraremos los elementos desde la paleta de componentes al editor de formularios.
Con ayuda del inspector de objetos modificaremos la propiedad Caption de las cadenas de texto estáticas, las propiedades Name y Text de las entradas de texto, y las propiedades Caption y Name de los botones. Todo ello hace que se añada automáticamente dentro de la clase TForm1 como atributos ocho punteros, cada uno de los cuales representa a uno de los componentes insertado. Utilizando el inspector de objetos activaremos además los eventos OnClick para los dos botones. Para ello pinchamos dos veces seguidas sobre el evento. Tras ello, Borland Builder añade dos métodos (uno para cada botón) dentro de la clase TForm1 (prac8.h) y genera automáticamente dentro de "prac8.cpp" los dos métodos asociados, que serán invocados cada vez que el usuario de la aplicación pulse dichos botones://--------------------------------------------------------------------------- void __fastcall TForm1::BotonOKClick(TObject *Sender) { } //--------------------------------------------------------------------------- void __fastcall TForm1::BotonSalirClick(TObject *Sender) { }
Crear un nuevo proyecto de tipo Application para trabajar con números complejos. Para la creación del proyecto seguiremos los mismos pasos que antes.
Tras ello añadiremos al proyecto una clase "Complejo" para guardar la información de los datos y realizar las operaciones de suma y resta entre complejos (se puede tomar como base la clase Complejo o Complex definida en los apuntes de teoría, tema 5).
El interfaz está formado por cuatro primeras cajas de edición situadas en la parte superior de la ventana, donde el usuario introduce la parte real y la parte imaginaria de los dos complejos con los que se va a operar. En el centro de la ventana aparecen dos botones para operar con dichos números complejos. En la parte inferior aparecen dos nuevas entradas de texto donde se presenta el resultado de las operaciones. Y por último, también se incluye en la interfaz un botón para salir de la aplicación.
Crearemos ahora una nueva aplicación que nos permita calcular precios de coches. La interfaz de la aplicación nos permitirá seleccionar el modelo del coche (Ibiza, Córdoba, León o Altea), el motor (1400 cc., 1600 cc., 1800 cc. o 1900 cc. TDI), y los extras (Pintura metalizada, llantas de aleación, elevalunas traseros, ordenador de abordo, alarma y faros antiniebla).
La selección del modelo del coche se hará con "RadioButton" agrupados dentro de una "TRadioGroup", lo que hará que sean independientes de otros grupos de botones radiales. Los extras podrán acumularse y se seleccionarán con controles de tipo "CheckBox" (agrupados dentro de una "GroupBox"). Para la selección del motor se utilizará una "ComboBox", que nos permitirá poner una lista con todas las opciones.
Por último, aparecerá un botón para calcular el precio, que se mostrará en una caja de edición.
De forma análoga a las anteriores partes, iremos añadiendo los componentes correspondientes.
Para calcular el precio final del vehículo tendremos en cuenta los siguientes parámetros:
Una vez finalizada la aplicación, prueba a modificar la tipografía del texto de alguno de los componentes de la ventana, a modificar el color de fondo de otros y a modificar el fondo de la ventana de la aplicación.