República Bolivariana de Venezuela
Universidad Nacional Experimental del Táchira
Departamento de Ingeniería Informática
Tema Perteneciente a la Unidad Nº
4: Programación en C++ Builder.
Autor: Lcdo. José Froilán Guerrero Pulido
¿Qué es
C++ Builder?
C++
Builder es una herramienta de desarrollo rápido (RAD) y de desarrollo de bases de
datos para Windows de Microsoft. La escritura de aplicaciones mediante este
tipo se basa en el uso de componentes o controles prefabricados, que son
dispuestos en ventanas y personalizados mediante propiedades. De esta forma la
creación de la interfaz de usuario pasa de ser un tedioso trabajo
exclusivamente de escritura de código a unas simples operaciones de ratón. Los
entornos de desarrollo visual, además de simplificar la creación de la
interfaz, también facilitan en gran medida otras operaciones habituales en
Windows como la comunicación con otras aplicaciones, el uso de cuadros de
diálogo comunes, la gestión de bases de datos. Cada elemento de un programa, ya
sea visual o no, viene representado por un componente.
C++
Builder permite crear aplicaciones de modo interactivo seleccionando
componentes de una paleta de componentes y desplazándolos al interior de
una ventana. Este entorno visual de desarrollo integrado radica en el de
generar código mientras se desplazan los componentes a la ventana de un formulario.
Este entorno por encima de otros entornos es que se pueden usar técnicas de una
programación orientadas a objetos diseñando nuevos componentes que respondan a
necesidades específicas. Si un determinado componente le parece adecuada su
funcionalidad pero no satisface su comportamiento, se podrá crear un nuevo
componente descendiente que incorpora un nuevo método. También podrá usar otros
controles que la industria ofrezca.
El
entorno de trabajo de C++ Builder se divide en distintas secciones: la ventana
principal, el formulario, paleta de componentes, el inspector de objetos y el
editor de código.
La
ventana principal es el centro del Entorno Integrado de Desarrollo de
C++ Builder. Dispone de toda la funcionalidad estándar de una ventana principal
de cualquier otro programa de Windows. Como en cualquier programa de Windows se
recurre al menú principal cuando se precisa abrir o guardar nuevos proyectos.
Se usa también cuando se precisa cortar, copiar, pegar o saltar a otra
herramienta de programación. Los iconos que pueden verse bajo el menú, mediante
ellos se puede recuperar un proyecto, guardar el actual, ejecutar la
aplicación, entre otras acciones. Cada uno de estos botones tiene una
correspondencia con una opción del menú y en muchas ocasiones también tiene
asociada una tecla de acceso rápido.
La
interfaz de las aplicaciones desarrolladas en C++ Builder estará basada
generalmente en el uso de formularios, y es aquí en donde se alojarán
los distintos controles o componentes encargados de interactuar con el usuario.
En todas las aplicaciones se contará con múltiples formularios, uno principal
que aparece inicialmente al ejecutar el programa. En el menú “File” se dispone
de la opción “New Form” que permite insertar un nuevo formulario en el
proyecto. Para abrir un formulario existente en el proyecto se puede utilizar
la opción “Forms” del menú “View”.
La
creación de aplicaciones basándose en el uso de componentes es algo que ha
revolucionado en cierta en forma el modo de trabajo de los programadores. Un
componente es cualquiera de los elementos que podemos insertar en un
formulario, tanto si su función es visual o no. En la ventana principal se encuentra la paleta de componentes,
en principio la página activa es la denominada Standard, en la que
podemos encontrar los componentes y controles más habituales en un programa.
Las pestañas existentes permitirán acceder a las demás páginas de componentes.
Esta paleta es personalizable mediante la opción “propierties” del menú contextual.
Los
componentes, y de forma más amplia todos los objetos de C++ Builder, son de uso
general, por lo que a la hora de utilizarse de alguna forma se deben adecuar a
las necesidades de la aplicación. Para ello se disponen de las propiedades de
cada objeto, mediante las cuales se establecen el título del formulario, el
tipo de letra de una etiqueta de texto, o la selección de un color específico.
Estos componentes contenidos en un formulario no tienen que ejecutarse
necesariamente en forma secuencial, sino que ciertas porciones de código se
ejecutarán cuando ocurra cierto evento. Los eventos son señales que el entorno
recibe desde distintos elementos, como puede ser el ratón o el teclado.
El
inspector de objetos es otro de los elementos cuya finalidad es
facilitar la edición de las propiedades de cada componente editado en el
formulario. En la parte superior aparece el nombre del componente que se está
inspeccionando. Es posible seleccionar cualquier componente de la lista
desplegable asociada a este formulario. El inspector de objetos cuenta con dos
páginas diferentes: Properties y Events. La primera contiene la lista de
propiedades, mientras que la segunda enumera los eventos que puede generar el
componente seleccionado. La columna izquierda de la página activa sirve para
mostrar los nombres de las propiedades o eventos, mientras la columna de la
derecha muestra el valor actual de la propiedad o del evento.
Cualquier
manipulación a nivel de componentes y eventos tiene su reflejo inmediato en el
código del módulo asociado al formulario. Otro aspecto importante a destacar
son los archivos de definición de componentes (DFM) en el que se reflejan para
cada componente su nombre, tipo y valores de las propiedades; para
activar/cerrar este tipo archivo de texto se establece la combinación
simultánea de las teclas Alt + F12.
La
ventana en la que trabaja el editor de código dispone de una serie de
elementos que se destacan a continuación:
·
En la parte superior se encuentran
las pestañas de selección de página, que permiten cambiar fácilmente entre un
módulo de código y otro.
·
La pestaña que existe en el límite
derecho del editor de código, en la parte superior, cuenta con dos botones tipo
“explorador” que facilitan la navegación por los distintos módulos de código.
·
Las barras de desplazamiento,
situadas a la derecha y abajo, con ellas se puede acceder a las partes no
visibles del código.
·
En la parte inferior de la ventana
se encuentra la barra de estado. Los indicadores de la barra de estado permiten
si el código ha sido o no modificado, entre otros aspectos.
Se
puede alternar entre la edición de un formulario y la edición del código
asociado pulsando la tecla F12.
Otro
aspecto importante en C++ Builder es el explorador de código, una
ventana que inicialmente se encuentra acoplada al lado izquierdo de la ventana
de edición de código. El explorador de código muestra una lista de elementos
existentes en el módulo de código abierto actualmente, ofreciendo un vistazo
rápido de las clases existentes, componentes, métodos, variables, entre otros
aspectos.
C++
Builder incorpora una tecnología denominada Code Insight, cuya finalidad
es facilitar la tarea del programador a la hora de escribir código. Esta
tecnología se refleja en varios aspectos, como la aparición de ventanas
emergentes de ayuda o la posibilidad de completar estructuras de código.
Suponga que necesita codificar una estructura de código típica, en lugar de
teclear todo el código se debe pulsar la combinación de teclas Ctrl + J y
automáticamente aparece una ventana donde se puede seleccionar código
(predeterminado por C++ Builder o el programador) que el programa requiera para
el momento. A través de la opción “Editor options” del menú “Tools”, se posee de
una serie de opciones relacionadas con el funcionamiento de Code Insight.
También
es posible guardar la configuración del escritorio mediante la opción “Desktops
> Save Desktop” del menú “View”. Es posible mantener varias configuraciones,
almacenando cada una de ellas con un nombre diferente. Para activar cualquier
configuración seleccionar la opción “Desktops” del menú “View”.
Al seleccionar
la opción “New” del menú “File” se abre una ventana conocida como “Depósito de
objetos”, en la que se puede optar por crear un nuevo elemento desde cero o
bien partir de otro ya existente. En la ventana aparece un conjunto de páginas
en la parte superior en donde podremos ubicar plantillas de formularios,
cuadros de diálogo, módulos de datos y proyectos, entre otros elementos que se
pueden copiar en el proyecto, utilizar o crear un nuevo elemento heredando las
características de uno ya existente.
En ocasiones, al
seleccionar un elemento del depósito de objetos el único efecto será la
inicialización de un nuevo proyecto, o bien su inserción al proyecto que se
esta editando. En otras oportunidades, se ejecutará un experto o asistente el
cual solicitará alguna información necesaria para la creación del nuevo
elemento.
Al igual que la
mayoría de los elementos de C++ Builder, la ventana del depósito de objetos
cuenta con un menú emergente que puede aparecer simplemente pulsando el botón
derecho del mouse. Sobre la ventana se puede elegir diferentes modos de
visualización, también se puede elegir la opción “Properties” que da acceso a
la ventana de propiedades del depósito de objetos (se puede acceder a esta
ventana por medio de la opción “Repository” del menú “Tools”). Esta ventana
permite añadir nuestra propia página con el fin de almacenar en ella los
elementos definidos por el programador, así como borrar páginas existentes o
renombrarlas.
También se puede
seleccionar una página y hacer uso de los botones que hay en la parte inferior,
para cambiar el orden de las páginas hacia abajo o hacia arriba. Cada vez que
se selecciona una página al lado derecho aparecen los nombres e iconos de esta
página, haciendo doble clic sobre cualquiera de ellos se podrá editar su
título, descripción, icono, página en la que se almacena y autor. Asimismo se
puede eliminar objetos haciendo clic en el botón “Delete Object”.
Gestión de Proyectos
Un
proyecto de C++ Builder se compone de un archivo de proyecto, con extensión
BPR, uno o más formularios, cada uno de ellos tiene asociado un archivo DFM con
la definición de la interfaz, un módulo de código con extensión CPP, un archivo
de cabecera con extensión H o HPP, y uno o más módulos independientes. Para
abrir el gestor de proyectos se tendrá que seleccionar la opción “Project
Manager” del menú “View”. La ventana del gestor de proyectos está ocupada por
la lista de componentes del proyecto, en ella se detalla cada uno de los
proyectos, cada uno de los formularios, cada uno de los módulos y la ruta donde
se encuentran ubicados estos elementos. Un doble clic sobre cualquier otro
elemento, como un módulo de código o un formulario, tendrá como resultado la
apertura del editor que corresponda.
Desde
el gestor de proyectos de C++ Builder es posible establecer opciones
individuales de compilación para cada módulo, así como determinar el orden de
compilación para evitar problemas de dependencias.
La
finalidad última de la etapa de desarrollo, diseño de interfaz y codificación,
es obtener una aplicación ejecutable. Es necesario compilar el proyecto
inicialmente, para lo cual C++ Builder basta con pulsar la combinación Ctrl +
F9 o seleccionar la opción “Make” del menú “Project”. Si se quiere ejecutar la
aplicación desde el propio entorno de C++ Builder solo es necesario pulsar la
tecla F9 o seleccionando la opción “Run” del menú del mismo nombre.
Los
comentarios no sólo se usan para describir la finalidad de un método o la
estructura de una clase, en muchas ocasiones sirven para dejar anotaciones de
temas pendientes, a revisar o modificar. C++ Builder cuenta con una ventana en
la cual se enumeran las tareas pendientes en un proyecto. Por cada tarea puede
existir un título o descripción, una prioridad, una categoría, un propietario,
marcar la tarea pendiente o realizada. Básicamente, pueden existir dos tipos de
anotaciones en esta ventana: las realizadas en el código, como comentarios, o
las añadidas directamente a la ventana, que pueden considerarse tareas globales
al proyecto. Para activar esta ventana seleccionar la opción “To-Do List” del
menú “View”.
El
formato de un comentario para que sea interpretado como una tarea se debe
seguir la siguiente sintaxis:
// TODO | DONE [Prioridad] [-cCategoria] [-oPropietario] :
Comentario
El
inicio del comentario será la palabra TODO, para una tarea pendiente, o bien
DONE, para una tarea que ya está realizada. Los tres parámetros siguientes son
opcionales, pero si se utilizan se deben omitir los corchetes. Un doble clic
sobre cualquier ítem de la ventana permite ir directamente al módulo y línea en
donde esta incluido el comentario. Marcando la casilla de verificación que hay
a la izquierda de cada ítem, se dará por terminada la tarea. La pulsación de la
tecla F2 teniendo seleccionado un ítem, se abrirá una ventana en donde se puede
modificar la descripción del ítem, su propiedad, clase o propietario (cambios
que se reflejan de manera inmediata en el módulo de código donde se encuentre
el comentario).
A
través de la opción “Table Propierties” del menú contextual de la ventana, se
presenta la lista de tareas pendientes y esta puede ser exportada al
portapapeles para usarla en cualquier otra aplicación o imprimirla. Esta
exportación puede realizarse en dos formatos: texto plano o en forma de tabla
HTML (opción “Copy As” del menú contextual de la ventana).