IDE es el acrónimo de Integrated Development Environment o entorno de desarrollo integrado.
C++ Builder es una aplicación Windows que proporciona un entorno de trabajo visual para construir aplicaciones Windows que integra distintos aspectos de la programación en un entorno unificado o integrado. La integración y facilidad de manejo hace que sea una herramienta indispensable para el desarrollo rápido de aplicaciones o RAD (Rapid Application Development). Guarda una gran similitud con el IDE de Visual Basic, aunque existen ciertas diferencias que veremos.
El IDE de C++ Builder es una aplicación Windows 95 y como tal cumple con los estándares de aspecto, diseño y comportamiento que aconseja Microsoft a los desarrolladores de aplicaciones. En consecuencia, cualquiera que esté familiarizado con el manejo a nivel de usuario de Windows 95 no le supondrá ningún esfuerzo manejarlo con soltura.
2.1. Una visión general del IDE de C++ Builder. El entorno de desarrollo se divide, básicamente, en tres
partes. Una serie de ventanas, que pueden estar visibles u
ocultas, constituyen la base de C++ Builder.
El aspecto de la aplicación al inicio de una sesión de
trabajo es el mostrado en la figura 2.1.
En la parte superior se coloca la ventana principal,
que contiene el menú principal, la barra de herramientas
(a la izquierda) y la paleta de componentes (a la derecha).
Debajo de la ventana principal, y a la izquierda se coloca
el inspector de objetos. A la dercha del inspector
de objetos está el área de trabajo de C++ Builder,
que inicialmente muestra el diseñador de formularios,
y escondido u oculto parcialmente tras éste aparece el
editor de código. Veamos a grandes rasgos la
misión de cada uno de ellos. En la ventana principal se ubican el menu principal,
la barra de herramientas y la paleta de componentes
(figura 2.2). Permite el acceso a todas las operaciones y posibilita
la configuración del programa. Permite un acceso rápido a las operaciones que
se realizan más frecuentemente. Agrupa a los componentes que pueden incluirse en las
aplicaciones. Para cambiar las propiedades de los
objetos que forman la aplicación y seleccionar los eventos
a los que debe responder la aplicación. Es una ventana cuadriculada sobre el que se disponen los
componentes para diseñar las ventanas que formarán la
aplicación. Un típico editor de texto multiventana para ver y editar
el código de la aplicación. Está perfectamente integrado
con el inspector de objetos y el diseñador de
formularios. Existen otras partes del entorno, que ya iremos
comentando conforme vayamos profundizando en el curso. A
continuación trataremos con más detalle las partes que hemos
enumerado anteriormente.
2.2. Un estudio detallado del IDE de C++ Builder. Se puede decir que es la ventana principal del IDE de
C++ Builder y siempre está visible.
En él podemos encontrar todas las operaciones
disponibles. Tiene los menús comunes a cualquier aplicación
Windows: File, Edit, Search, Help...,
además de otros que ya iremos estudiando a lo largo del
curso. En el título del menú principal aparece el nombre
de la aplicación (C++ Builder) y el nombre del
proyecto/grupo de proyectos con el que actualmente se
está trabajando. Por defecto, asigan el nombre
Project1 al proyecto
con el que se va a trabajar,
aunque éste deberá cambiarse, lógicamente. Como veremos,
el concepto de proyecto es fundamental en
C++ Builder ya que es el mecanismo de organizar sensatamente
todos los ficheros (formularios, código fuente, recursos, etc.)
asociados a una aplicación. La barra de herramientas tiene como objeto acelerar
las operaciones más comunes del menú principal.
Si nos acostumbramos a utilizarla agilizaremos el uso del
entorno significativamente. Su aspecto habitual es el que
mostramos en la figura 2.7. Si pasamos el ratón sobre los iconos nos
aparecerán unos globos o cuadros de ayuda,
informándonos de cual es la funcionalidad de cada
uno de ellos. La barra de herramientas se puede personalizar (al igual
que casi todas las partes del entorno) pulsando con el
botón derecho y seleccionando Properties. Los componentes constituyen los bloques básicos
sobre la que se construyen aplicaciones Windows con
C++ Builder basadas en la VCL (Visual Component
Library) y son la base de la VCL. Todos los componentes (visuales y no visuales) están
accesible rápida y cómodamente gracias a la paleta de
componentes. Podemos decir que es un gran almacén de
componentes listos para ser incorporados a una
aplicación, seleccionándolo y colocándolo en un
formulario. Por conveniencia, todos los componentes disponibles se
encuentran organizados en distintas páginas o carpetas
según su funcionalidad. Cada pestaña de la paleta
de componentes da acceso a un conjunto de iconos que
representan a componentes que pueden usarse para diseñar
la aplicación. Su aspecto es el que mostramos en
la figura 2.8. A diferencia con Visual Basic, todos los
componentes de C++ Builder se encuentran cargados
por defecto, aunque se le pueden añadir más
mediante las opciones del menú de componentes
(opción Component del
menú principal).
Cada componente tiene asignada una página, por lo
que el usuario no puede elegir la ubicación de los
componentes disponibles por defecto en la paleta de
componentes, aunque puede modificar la disposición de las
páginas y añadir nuevas páginas o componentes
( Tools | Environment
Options) Para colocar un componente en un formulario se debe
seleccionar en la paleta de componentes el botón que representa
al componente y a continuación, pinchar sobre el formulario
donde se desea colocalo. Una estrategia alternativa (y menos
utilizada) es seleccionar el componente en la ventana
Components, que se abre seleccionando
View | Component List. Conocer los componentes y su filosofía de trabajo
(propiedades, métodos y eventos) es fundamental para un
programador. En la sección 3
discutimos con más profundidad sobre los componentes
disponibles en C++ Builder y en la
sección 4 discutimos acerca de la
estructura de la VCL. Enlaces adicionales: Como hemos indicado anteriormente, es una ventana cuadriculada
quer sirve para diseñar las ventanas (o formularios)
que formarán la aplicación (ver figura 2.4).
Es una herramienta visual destinada a diseñar y
presentar la interfaz de usuario (la apariencia externa) de
una aplicación. Un formulario puede ser la ventana
principal de un programa, un cuadro de diálogo o cualquier
otra ventana. Mediante el uso del ratón podemos colocar
componentes de la paleta de componentes en el área de
diseño. Lo único que tenemos que hacer es: La posición de un componente siempre se ajusta al punto más
próximo de la rejilla para facilitar su ajuste (su alineación).
La opciones relacionadas con la rejilla pueden modificarse en
Tools | Environment Options. Siempre hay un componente (o en su defecto, el propio
formulario) activo. Visualmente se sabe cuál es porque
aparece enmarcado con trazos discontínuos en el diseñador
de formularios. Se puede activar cualquier componente
pinchando () sobre él.   Se trata, sin duda, de una de las herramientas más potentes y
atractivas de C++ Builder. Su aspecto es el que mostramos
anteriormente en la figura 2.3. Se trata de una ventana que
contiene dos páginas: Properties y Events.
En la figura 2.9 mostramos
el aspecto de las dos páginas en cuestión para el
formulario que aparece por defecto al iniciar
C++ Builder.   Cada componente tiene asociado un conjunto de propiedades
y métodos y un conjunto de eventos a los que puede responder.
Con el inspector de objetos podremos moldear los componentes
de una aplicación según nuestras necesidades,
en cuanto a su apariencia (propiedades) y
funcionalidad (eventos a los que puede responder).
En definitiva, podemos modificar las propiedades de
los componentes y construir los gestores de eventos
a los que éstos pueden responder. En la parte superior se especifica el objeto activo
(en la figura 2.9, el formulario, llamado
Form1). Las propiedades
del objeto activo aparecen en la página con la pestaña
Properties y los eventos a los que puede responder
en la página con la pestaña Events. Para seleccionar un objeto desde el inspector de objetos
se despliega la lista de objetos y se selecciona el objeto
en la lista. También se puede seleccionar desde el diseñador
de formularios pinchando ()
sobre el objeto. Por ejemplo, podríamos poner el texto
Escuchar saludo en un
botón colocado sobre un formulario (modificando la propiedad
Caption) y escribir un código para reprodicir un
fichero .WAV que contiene una grabación (escribiendo un
gestor para el evento OnClick)   Permite editar el código de una aplicación
de una forma cómoda. Admite coloreo simple de la
sintaxis y distintos archivos abiertos simultáneamente. En la ventana del editor pueden "pegarse" el
gestor de proyectos y el inspector de clases
(véase en la figura 2.10) aunque estas dos herramientas
pueden aparecer también como ventanas separadas. Pulsando con el botón derecho aparece un menú
contextual (figura 2.11) con algunas opciones bastante
útiles. A diferencia con Visual Basic, C++ Builder
nos permite el acceso a la totalidad del código fuente de
la aplicación. Por esto es importante saber qué
partes de ese código está mantenido
automáticamente, y sobre todo
¡¡¡evitar modificarlo!!!. El editor de código está relacionado muy
estrechamente con el inspector de objetos. Al hacer doble
click en un evento, el IDE genera automáticamente
el código para la función manejadora para tal
evento. No tenemos que preocuparnos de cuál es
exactamente el prototipo que debemos de usar para la
función que maneje el evento, ya que este se
generará correctamente en la unidad de código
asociada al Form actual. Cuando queramos eliminar un manejador de evento que ha
sido generado automáticamente es conveniente no
borrar "a mano" la función. Lo mejor es borrar
"el cuerpo" de dicha función (lo que el programador
escribe) y dejar que el resto lo elimine C++ Builder
(lo que ocurrirá cuando se guarde el archivo).   Un proyecto es un conjunto de archivos que trabajan en
equipo para crear un archivo ejecutable independiente o
una DLL. Un grupo de proyectos es un conjunto de proyectos.   Los proyectos que componen un grupo de proyectos, y los
archivos que componen cada uno de esos proyectos, es lo que
presenta, en forma de árbol, el administrador de
proyectos. Puede emplearse como navegador para seleccionar
el módulo con el que se va a trabajar. Para visualizar el
gestor de proyectos, seleccionar
View | Project Manager.
El gestor de proyectos puede "pegarse" al editor de código,
arrastrándolo hasta colocarlo sobre éste último
(ver figura 2.10). En todo momento existe un único proyecto activo
(en la figura 2.12, Project1), y será este el
que se ejecute si elegimos la opción
Run|Run. Los ficheros de proyecto especifican todos los recursos
necesarios (ficheros .cpp, .h, ficheros de
descripción de formularios, etc.) que se necesitan para la
construcción del ejecutable. Los ficheros de proyecto tienen
extensión .bpr y el ejecutable que se genera tiene
el mismo nombre que el proyecto y la extensión .exe,
lógicamente. Todo proyecto en C++ Builder se compone, al menos,
de un archivo de código que contiene la función principal
(WinMain()). Su nombre es el nombre del proyecto,
con la extensión .cpp (en la figura 2.12,
Project1.cpp). Este fichero no está, habitualmente,
visible, ya que no es necesario modificarlo.
Puede abrirse en el editor de código con la opción
Project|View Source. Cualquier aplicación típica tendrá al menos una ventana.
Para cada ventana (en la figura 2.12, Form1) habrá un módulo,
formado por una pareja de ficheros: un .cpp (en la
figura 2.12, Unit1.cpp) y su correspondiente .h:
en el fichero .cpp estarán los gestores de los eventos
asociados a los componentes de esa ventana y en el .h
(que no se modificará, normalmente) estará la declaración de
los componentes de esa ventana. Además del fichero que contiene la función principal, un
proyecto puede tener asociados una serie de módulos adicionales
en los cuales pueden incluirse funciones y clases de objetos, como
en cualquier aplicación C++. Cada uno de estos módulos estará formado
por una pareja de ficheros: un .cpp y su correspondiente
.h. Más información sobre proyectos en C++ Builder y
configuración de aplicaciones. A un grupo de proyectos se le pueden añadir proyectos,
archivos, formularios, módulos... nuevos o que ya
existan. Hemos dicho que, en definitiva, el administrador de proyectos
es únicamente un organizador de archivos. Veamos brevemente
qué tipos de archivos pueden formar parte de un proyecto/grupo
de proyectos, y que cuál es su cometido: EXT Descripción BPR Es el archivo makefile del proyecto.
Define qué y cómo se debe compilar. CPP Archivos fuente de C++. H Archivos de cabecera de C++. OBJ Archivos objeto resultado de la compilación. EXE Es el programa ejecutable resultante. TDS Archivos temporales para la compilación incremental. DFM Archivos de descripción de formulario.
Contiene los valores de las propiedades de cada
componente. RES Un archivo de recursos. DSK Es el archivo que contiene la configuración del escritorio para un proyecto. BPG Es un archivo de grupo de proyectos. Describe qué proyectos conforman el grupo de proyectos. HPP Archivos de cabecera creados automáticamente
por C++ Builder. 2.3. El sistema de ayuda El sistema de ayuda será una de las herramientas
que más útiles nos resultará en nuestro
trabajo con C++ Builder.
Especialmente la documentación de los componentes
y clases predefinidas. Saber programar con C++ Builder no significa dominar
todos y cada uno de los aspectos del entorno, sino que más
bien es conocer los principios en los que éste se basa,
y los detalles concretos ya los buscaremos en la Ayuda cuando
nos sean necesarios. La ayuda es una ayuda estándar de Windows
por lo que no entraremos en más detalles, sólo
comentar que pulsando F1
obtendremos una ayuda contextual. Así, por ejemplo, en el caso
de hacerlo en el editor de código, se nos ofrecerá
la ayuda correspondiente a la palabra que se encuentre bajo el
cursor (figuras 2.13, 2.14 y 2.15). Pulsando F1
sobre cualquier opción de un menú se mostrará la ayuda
asociada a esa opción (figura 2.16). C++ Builder proporciona algunas facilidades muy
útiles a la hora de escribir código. Las más importantes son:
2.4. Compilación, ejecución y depuración de programas. El objetivo final es la creación de un programa ejecutable
correcto que funcione bajo Windows. El ejecutable se construye
tomando como referencia los ficheros que forman el proyecto
activo. Para esta tarea se utilizan los menús
Project y
Run (figura 2.18). Project Run En la compilación se trata de la obtención del programa
ejecutable (extensión .EXE). Las operaciones asociadas
a este objetivo se encuentran en el menú que se despliega al
seleccionar la opción
Project
del menú principal (figura 2.18), y las más importantes son:
Para más detalles acerca de los menús, consultar la
lista completa de menús.
Para más detalles acerca de los componentes disponibles,
consultar la
lista completa de componentes, agrupados por
páginas.
Para más detalles acerca de cómo configurar y
manipular los componentes, consultar la
relación de
propiedades, métodos y eventos de componentes.
Si se pincha dos veces en lugar de una,
se activa el editor de código para escribir el gestor del evento
OnClick asociado a ese componente. Si ésto no es lo que
queremos basta con volver a activar el diseñador de formularios
y continuar con la fase de diseño. Cuando se guarde el proyecto,
el código que C++ Builder ha insertado automáticamente
desaparecerá porque no hemos introducido ningún código para
ese gestor.
En ningún caso se borrará manualmente lo que
C++ Builder ha insertado automáticamente: podría provocar
una inconsistencia interna y hacer inaprovechable el trabajo
realizado.
EJERCICIO 1: Diseño de un formulario.
Si lo que se desea es modificar sus propiedades, se
abre la carpeta de propiedades pinchando sobre la pestaña
Properties. Si lo que se desea es asociarle un
gestor de eventos, se abre la carpeta de gestores de
eventos seleccionando la pestaña Events.
EJERCICIO 2: Uso del inspector de objetos para
modificar propiedades.
EJERCICIO 3: Uso del inspector de objetos para
escribir gestores de eventos con el editor de código.
Aunque está en formato binario, puede verse como texto
seleccionando View as text
en el menú contextual que aparece al pulsar con el botón derecho
del ratón cuando se está situado sobre el formulario.
Es posible configurar estas utilidades seleccionando
Tools | Environment Options |
Code Insight.
Si durante la compilación se detectaran errores, se mostraran
en el editor de código y se puede acceder directamente a las
líneas de código en las que se han detectado para facilitar
su corrección.
Para ejecutar el programa basta con pinchar sobre el botón correspondiente de la barra de herramientas o seleccionar la opción Run | Run.
C++ Builder proporciona facilidades para la depuración de programas, seleccionables al desplegar el menú Run (figura 2.18). Las más importantes son:
Para que la depuración sea más completa y versátil se incorporan las siguientes opciones en el mismo menú:
2.5. El almacén de objetos
Se accede al almacén seleccionando File | New.
Contiene formularios, cuadros de diálogo, módulos de datos, asistentes, DLLs, etc. que podemos utilizar para simplificar el desarrollo de aplicaciones. Todos ellos están prediseñados y pueden servirnos como punto de partida para nuestros propios diseños. Además se pueden incorporar nuevos elementos que nosotros desarrollemos, consiguiendo de esta forma reutilizar nuestros diseños.
En este curso utilizaremos con frecuencia el almacén para crear nuevos proyectos (File | New | Application), para crear aplicaciones de consola (File | New | Console Wizard), para añadir nuevos formularios (File | New | Form) o ficheros de código (File | New | Unit), para crear módulos de datos (File | New | Data Module), etc.
2.6. Ejercicios
Ejemplos de aplicaciones simples y de consola. |