<-- Capítulo

Índice del tutor de Delphi
© Copyright 1998
por David Martínez.

Todos los derechos reservados

Capítulo -->

Capítulo 1. La aplicación - El "Archivo de Proyecto de Delphi"

Esta sección esta enfocada para entender como funciona una aplicación en el ambiente Delphi dentro de Windows, y cuales son las principales partes de un programa de "Object Pascal" en Windows (object pascal es el nombre formal del lenguaje de programación - asi como en Visual Basic el lenguaje es Basic, en Delphi el lenguaje es Object Pascal). Si quiere usted comenzara a programar en Delphi de inmediato, vaya a la siguiente seccion (y asombrese de lo facil que es programar con Delphi!), pero asegurese de regresar a esta seccion para tener una buena fundacion de la manera en que funciona una aplicación de Delphi.

Nota: No se preocupe si no entiende la totalidad de lo mencionado en esta sección. Muchos programadores muy exitosos no comprenden mucho de lo especificado en este capítulo. Pero creo que en estos dias de lenguajes tan diferentes para programación en Windows (e incluso en otros sistemas operativos) es muy importante tener una idea clara de lo que el lenguaje que utilizamos tiene que hacer para lograr su "magia". Los programadores de C++ para Windows reconeceran muchos contrastes con este lenguaje, y encontrarán que Delphi es casi tan flexible en este campo como C++.

Delphi se divide en tres secciones, el compilador (con su "encadenador"), la libreria, y el IDE (Ambiente de desarrollo integrado, o Integrated Development Environment). El compilador/encadenador es un programa que crea el archivo ejecutable de Windows (PE) estilo Intel, sin ningun interprete de por medio. La librería es código que nos permite usar todas las capacidades de Delphi. La libreria esta escrita en su totalidad en Object Pascal (es una libreráa "de clases" estilo MFC, llamada VCL), y esta totalmente orientada a objetos. Veremos objetos y su repercusión en programación mas adelante.

Una nota interesante es que el IDE esta hecho en Delphi, y utiliza las mismas librerias que usted utiliza para compilar su programa. Esto quiere decir dos cosas:

Un programa es una serie de instrucciones que son ejecutadas por la computadora en secuencia. En los viejos tiempos de BASIC, la secuencia estaba especificada por números de linea. En los demás lenguajes la secuencia está simplemente especificada por las líneas del programa, que van una detrás de otra (a menos que el programa se haya ido de fiesta anoche). En DOS, cuando el programa ejecuta la ultima línea, el programa termina.

Nota: Los que han programado en DOS recordaran lo siguiente: El hecho de que el programa termina despues de su ultima linea obligaba a los programadores a hacer un ciclo para controlar el programa. Este ciclo (ya sea usando Goto, Do-While o otra clase de recursión) mostraba el menu principal y respondía a lo que el usuario seleccionaba. Un programa en Windows no es muy diferente en este sentido de una aplicación en DOS. El ciclo sigue ahi, pero ahora el ciclo lo controla la librería de clases y no el programador. Lo que anteriormente llamabamos "ciclo del menú principal" (o algo parecido) ahora se llama "message loop" (ciclo de mensajes).

El "programa principal" de Delphi es un archivo de texto ASCII con extensión .DPR. Ésta extensión quiere decir Delphi PRoject (proyecto de Delphi).

Para cada una de las ventanas que usted diseña en el IDE, Delphi crea una "unidad". Una unidad es un archivo individual (tambien de texto ASCII) que representa en general a un objeto, o a una agrupación logica de funciones. En el caso de los "objetos" que son formas, Delphi también crea un archivo "DFM" (Delphi Form) para guardar la apariencia del diseño de las mismas (las formas son simplemente archivos de recursos en un formato especial que solo funciona en Delphi - ver "archivos de recursos (RES)").

El siguiente ejemplo muestra el archivo DPR que se crea cuando comienza usted Delphi. En general usted puede crear programas muy complejos sin jamás modificar el archivo DPR (tambien llamado archivo de proyecto). Pero es importante saber como funciona. El archivo de Proyecto "Project1.Dpr" tiene la siguiente apariencia:

program Project1;

uses
  
Forms,
  
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
  
Application.Initialize;
  
Application.CreateForm(TForm1, Form1);
  
Application.Run;
end
.

Analicemos este archivo. La sentencia "program project1" nos dice que el programa se llama project1. El nombre de programa debe ser el mismo que el nombre del archivo (sin extensión).

La seccion USES nos dice que archivos son usados. Forms es la librería de Delphi que contiene los comandos para crear y manipular ventanas (que en Delphi se llaman Formas). El otro renglón en la sección "uses" nos dice que la unidad llamada "Unit1" se encuentra en el archivo "unit1.pas", y Delphi nos hace un comentario {} que dice que la forma en esta unidad se llama Form1.

$R es una "directiva del compilador". Una directiva es un comando para el compilador, no para el IDE. Cuando el compilador encuentra la directiva {$R *.RES} un archivo de "recursos" con el mismo nombre del programa (pero con extension RES) es encadenado junto con el programa.

Nota: Un archivo de recursos (RES) es un archivo con especificaciones para bitmaps, textos en general, iconos, y en algunos casos cajas de dialogo o menus. Delphi utiliza el mismo formato para sus archivos RES que C, y cualquier editor de recursos para C de 32 bits (como los que se encuentran en Visual C++ 4/5) pueden crear archivos de recursos que Delphi puede leer y utilizar.

Una vez que Delphi ha especificado todo lo que va a usar el proyecto, el programa inicializa la aplicación (Application.Initialize), crea la forma Form1 a partir de la definición de objeto "TForm1" (veremos el significado de esto mas adelante) usando "CreateForm", y la aplicación "corre" (Application.Run). Cualquier forma creada con CreateForm está "viva" (aunque podria ser invisible) hasta que el Application.Run termina. Despues de esto (normalmente cuando "Run" recibe el mensaje "Terminate") el programa termina.

¿Porqué Application.Run?

"Run" en Delphi es un método de la aplicación que hace al programa entrar en el ciclo de mensajes de Windows. El ciclo de mensajes es un ciclo estilo "Do While" que recibe mensajes de Windows (clicks de botones, tecleos, movimientos del "mouse") y procesa los mensajes en una manera consistente para todas las "ventanas" de la aplicación. En los viejos días de la programación de sistemas de ventanas, los programadores de C tenian que escribir el ciclo de mensajes ellos mismos. Pero hoy en dia, librerías de clases como MFC y el VCL de Delphi manejan la tediosa programación del ciclo de mensajes.

En el siguiente capítulo veremos como Delphi nos facilita la construccion de una aplicación, y escribiremos una sola línea de código para ver el poder que nos proporciona Delphi para el desarrollo de aplicaciones.

Capítulo -->