Está en la página 1de 11

1 Embarcadero Delphi / Introduccin

INTRODUCCION A LA PROGRAMACION VISUAL


CON EMBARCADERO DELPHI
1. Definicin de Delphi:
Delphi es un lenguaje de algo nivel, compilado y fuertemente tipeado que soporta diseo
estructurado y Orientado a Objetos. Basado en Pascal Orientado a Objetos (Object Pascal),
sus beneficios incluyen cdigo fcil de leer, rpida compilacin, y el uso de multiples
archivos unidades para programacin modular. Delphi tiene caractersticas especiales que
soportadas por el framework y en entorno de desarrollo (IDE) de RAD Studio.
2. Pagina Principal del Fabricante:
La pgina oficial del fabricante
http://www.embarcadero.com.

de

los

productos

Embarcadero

es:

3. Historia de Delphi:
Delphi 1 sali al mercado en la primavera del 95. Estaba diseado para ejecutarse en
Windows 3.1, aunque era compatible con las versiones beta de Windows 95, que an no
se haba comercializado. Fue el primer entorno de desarrollo RAD que ofreca un
compilador de cdigo nativo. El lenguaje en que se basaba, como todos sabemos, era
Pascal; de hecho, internamente el compilador defina directivas de compilacin como
VER80, para indicar que se consideraba la versin 8 de Turbo Pascal. Se comercializaron
dos versiones: la Desktop y la Client/Server. Ambas incluan un producto de Borland que ya
se distribua con ciertas versiones del Borland C++: el Motor de Bases de Datos de Borland,
o Borland Database Engine (BDE). Este era un conjunto de DLLs que permitan el acceso
funcional a dBase, Paradox, fuentes de datos ODBC y diversos sistemas SQL: Oracle,
InterBase, Informix y Sybase. En la versin Desktop, sin embargo, no se incluan los
controladores necesarios para acceder a bases de datos en un servidor, conformndose
con las bases de datos locales y ODBC.
Aunque en el momento de la aparicin de Delphi 1 Visual Basic llevaba unos cuantos aos
en el mercado, la nueva herramienta tuvo una clamorosa acogida en la comunidad de
programadores. Por primera vez se alcanzaban velocidades de ejecucin profesionales en
programas desarrollados con el paradigma RAD. Por primera vez, un lenguaje RAD era
totalmente extensible, permitiendo sin ningn tipo de maniobras de distraccin el acceso
al temido API de Windows. Por primera vez, un lenguaje basado en componentes permita
crear tambin esos componentes, sin necesidad de recurrir a otro entorno de
programacin.
La siguiente versin de Delphi apareci tambin en la primavera del 96. El principal avance
fue la conversin del compilador para generar aplicaciones de 32 bits, para Windows 95
(que todos pensbamos que iba a ser Windows 96) y para Windows NT. Adems, se
incluy una fase de optimizacin de cdigo, todo un lujo para un lenguaje compilado,
mientras Visual Basic 4 segua generando cdigo interpretado. La metodologa de
programacin experiment mejoras importantes: la inclusin de mdulos de datos, el
Ing. Amrico Torres Gonzales

2 Embarcadero Delphi / Introduccin


Depsito de Objetos, el Diccionario de Datos, la herencia visual, etc. Y, gracias a la
retroalimentacin por parte de los programadores, los componentes existentes se hicieron
ms potentes y manejables. Se incluy tambin la posibilidad de crear controladores y
servidores de automatizacin, para aprovechar las nuevas caractersticas de OLE de
Windows 95 y NT. El Motor de Datos se aument con un controlador para DB2.
Posteriormente, en ese mismo ao, se realiz una actualizacin de Delphi con el nmero
de versin 2.01 que, adems de corregir errores, incluy el Internet Solutions Pack, un
conjunto de controles ActiveX para aplicaciones de Internet.

En mayo del 97, despus de una tensa espera, apareci la versin 3. Las novedades se
centraron en tres campos: la tecnologa de paquetes (packages), el aprovechamiento
de la tecnologa OLE (ActiveX, automatizacin, bases de datos en mltiples capas) y la
programacin para servidores Web. El objetivo global de todas estas incorporaciones
fue convertir a Delphi en un verdadero entorno de desarrollo cliente/servidor,
permitiendo la programacin de aplicaciones que se ejecutan en el servidor. El Motor
de Datos sigui aadiendo formatos: en aquel momento le toc a Access y a FoxPro.
Por otra parte, la arquitectura de acceso a datos fue modificada para facilitar el
desarrollo de componentes de acceso a datos que dejaran a un lado el BDE. En esta
lnea, Borland lanz Delphi/400, para acceder a bases de datos de AS/400, que
utilizaba la tcnica de saltarse el BDE.
Al poco tiempo, Borland lanz una versin de actualizacin de Delphi, con el nmero
de serie 3.01. Adems de la correccin de bugs, incorporaba un nuevo componente,
TMIDASConnection, para permitir el desarrollo de aplicaciones en mltiples capas en
redes TCP/IP. Con este componente, se poda evitar la instalacin y configuracin de
DCOM en redes mayoritariamente formadas por terminales Windows 95. Tambin
hubo un parche, el 3.02, que corrigi algunos problemas relacionados con la tecnologa
Midas y con los dichosos controles del Internet Explorer, que iban cambiando de
versin mes tras mes. Una versin intermedia del BDE, la 4.51 que apareci con Visual
dBase 7, aadi el soporte nativo para Access 97, pues la versin incluida en Delphi
solamente soportaba Access 95.
En julio del 98, Delphi 4 vio la luz. Delphi 4 ha mejorado ostensiblemente el entorno de
programacin y desarrollo, al aadir el Explorador de Cdigo, las facilidades de
completamiento de clases, etc. Hay mejoras en el lenguaje, pero usted no las notar en
Ing. Amrico Torres Gonzales

3 Embarcadero Delphi / Introduccin


su programacin cotidiana. Hay novedades en los controles visuales, como el soporte
de dockable Windows (ponga aqu su traduccin preferida) y las listas de acciones. En
el apartado de bases de datos, se ha aadido soporte para las extensiones de objetos
de Oracle 8 y se ha oficializado el soporte de Access 97. La tecnologa Midas se ha
beneficiado de adelantos impresionantes, tanto en estabilidad como en posibilidades
de conexin: ahora es posible utilizar CORBA como mecanismo de enlace en
aplicaciones multicapas y hay soporte para Microsoft Transaction Server. Tambin se
ha mejorado el sistema de base de datos en el cliente de Midas, con la posibilidad de
utilizar tablas anidadas, campos agregados, etc.

4. Es Delphi un lenguaje sencillo?


La respuesta al ttulo de la seccin depende de lo que se desee hacer con l. Quiere
montar un mantenimiento simple, con objetos que se pueden representar en registros
independientes? En ese caso, s, es muy fcil. Quiere trabajar sobre un esquema
relacional complejo, con referencias complicadas entre tablas, estructuras jerrquicas y
todo eso? Bueno, con un poco de disciplina, la aplicacin se desarrolla en poco tiempo; es
fcil plantearse una metodologa de trabajo, y el resultado ser un programa robusto,
que es algo de agradecer. Quiere que el programa anterior sea independiente del
formato de bases de datos subyacente, que se acople lo mismo a sistemas locales, como
Paradox y dBase, que a Oracle, InterBase o MS SQL Server? Entonces, amigo mo, necesita
seguir este curso, para que sepa en qu terreno se ha metido.
El problema no reside en Delphi, pues las mismas dificultades se le presentarn con C++
Builder, Visual Basic PowerBuilder. La causa de las complicaciones es, a mi entender, el
modelo de programacin y acceso concurrente que es necesario dominar para este tipo de
aplicaciones. El programador de bases de datos locales (lase Clipper, Paradox, los
distintos COBOL para PCs, etctera) aborda las cuestiones de concurrencia imponiendo
bloqueos en cada registro antes de editarlos. En el 95 por ciento de los casos, no se
plantea la garanta de atomicidad de las actualizaciones compuestas, ni la recuperacin en
transacciones, ni el elevar al mximo la concurrencia de la aplicacin (conozco aplicaciones
de facturacin escritas en Clipper para red que slo dejan facturar desde un puesto a la
vez). Por supuesto, al programador que solamente ha trabajado en este tipo de entorno le
Ing. Amrico Torres Gonzales

4 Embarcadero Delphi / Introduccin


cuesta ms acostumbrarse a distinguir entre bloqueos optimistas, pesimistas y
arquitecturas multigeneracionales.
5. Organizacin de un Programa en Delphi:
Los programas estn divididos en mdulos de cdigo fuente llamados unidades. La
mayora de los programas comienzan con la palabra reservada program, el cual es usado
para especificar el nombre del programa. Este palabra reservada es seguida por la clausula
reservada opcional uses, luego un bloque de declaraciones y sentencias. La clausula uses
lista las unidades que son enlazadas al programa (libreras); estas unidades, pueden ser
compartidas por diferentes programas. La clausula uses provee al compilador de
informacin sobre las dependencias a travs de modulos. Debido a que esta informacin
esta almacenada en modulos tambin, la mayora de programas Delphi no requieren
makefiles, archivos de encabezado o directivas include.

5.1 Archivos Fuente Delphi:


El compilador espera encontrar cdigo fuente en archivos de los 3 siguientes tipos:

Archivos Fuente Unit (los cuales terminan en extensin .pas).


Archivos de Proyecto (los cuales terminan con la extensin .dpr).
Archivos fuente de Paquete (los cuales terminan con la extensin.dpk).

Las Unidades (Units) son tpicamente los archivos que contienen la mayora del cdigo
de la aplicacin. Cada aplicacin tiene un solo archivo de Proyecto (.dpr) y varias
unidades (.pas). El rol del archivo dpr es organizar las unidades en una aplicacin. Las
herramientas de desarrollo Embarcadero automticamente mantienen actualizado el
archivo dpr sin necesidad de la intervencin del desarrollador.
Los paquetes (dpk) son similares a los dpr, pero estos son usados para construir las
libreras enlazadas dinmicamente llamadas paquetes.
5.2 Otros Archivos Usados para Construir Aplicaciones Delphi:
Adicionalmente, los productos Embarcadero usa varios archivos no-Pascal para
construir aplicaciones. Estos archivos son automticamente creados y actualizados por
el IDE, ellos incluyen:

Archivos de Formulario VCL (los cuales tienen extensin .dfm en Win32).


Archivos de Recursos (los cuales tienen extensin .res).
Archivos Opcionales de proyecto (los cuales tienen extensin .dof).

Un archivo de formulario VCL contiene la descripcin de las propiedades del formulario


y los componentes que este contiene. Cada archivo dfm representa un solo formulario,
el cual usualmente corresponde a una ventana o cuadro de dialogo en la aplicacin. El
IDE permite ver y editar estos archivos como texto, y grabarlos ya sea como texto o en
formato binario. Aunque el comportamiento por defecto es grabarlos como texto, no
son editados con frecuencia manualmente; es mas comn usar las herramientas
visuales Embarcadero para este propsito. Cada proyecto tiene al menos un
Ing. Amrico Torres Gonzales

5 Embarcadero Delphi / Introduccin


formulario, el cual esta asociado con una unidad (.pas) que es un archivo de texto
plano, el cual, por defecto tiene el mismo nombre que el formulario.
Adicionalmente a los archivos VCL, cada proyecto usa un archivo .res para mantener el
icono de la aplicacin y otros recursos como cadenas. Por defecto este archivo tiene el
mismo nombre que el proyecto.
Un archivo de opciones de proyecto (.dof) contiene configuraciones para el compilador
y enlazador, informacin de versin y cosas por el estilo. Cada proyecto tiene asociado
uno de estos archivos y lleva el mismo archivo que el proyecto.
Varias herramientas en el IDE guardan informacin en archivos de otros tipos. Por
ejemplo, los archivos .dsk (Desktop Settings) contienen informacin sobre la posicin y
tamao de las ventanas. Pero estos archivos no tienen efecto directo en la
compilacin.

5.3 Archivos Generados por el Compilador


La primera vez que construyes una aplicacin o un paquete, el compilador produce
una versin compilada de cada Unidad. De .pas -> .dcu. Todos los dcu en el proyecto
son enlazados para crear un solo ejecutable (.exe) o un paquete compartido segn sea
el tipo de proyecto que estemos creando.
La primera vez que se crea un paquete, el compilador produce un archivo por cada
nueva unidad contenida en el paquete, y luego crea ambos archivos (.dcu y .dpk). Si
usas el modificador GD, el enlazador genera un archivo mapa y un archivo .dcr, el cual
contiene cadenas de recursos, puede ser compilado en un archivo .res.
Cuando construyes un proyecto, las unidades individuales no son compiladas a menos
que su fuente (.pas) haya cambiado desde la ltima compilacin.
6. Ejemplo de Programas en Delphi:
Los ejemplos que siguen ilustran las caractersticas bsicas del lenguaje Delphi.
6.1 Una Aplicacin Simple de Consola: El siguiente programa muestra una aplicacin muy
sencilla que puedes compilar y correr desde la lnea de comandos:

Ing. Amrico Torres Gonzales

6 Embarcadero Delphi / Introduccin

Explicacin:
La primera lnea declara un programa llamado PrimerEjemplo. Luego la directiva
{$APPTYPE CONSOLE} le dice al compilador que esta es una aplicacin de consola, para
ser ejecutada desde la lnea de comandos. La siguiente lnea declara una variable
llamada MiMensaje, la cual almacena una cadena. Seguido comienza el bloque
principal del programa begin / end. La primera sentencia ejecutable del programa
asigna la cadena Hola Mundo a la variable MiMensaje, finalmente se imprime el valor
de la variable recin asignada en la dispositivo de salida estndar (la pantalla) usando
el procedimiento Writeln.
Al ejecutar este programa desde la lnea de comandos se obtiene algo como lo
siguiente:

A pesar de su simplicidad, este ejemplo difiere en varias formas de los programas que
quisiramos escribir con Delphi. Primero, es una aplicacin de consola. Las
herramientas de desarrollo Embarcadero a menudo son usadas para escribir
aplicaciones con interfaces graficas; donde ordinariamente no se llama la funcin
Writeln. En una aplicacin Grafica tpica, la primera lnea de este ejemplo debera estar
ubicada en un archivo dpr que no contiene nada de la lgica de la aplicacin.
6.2 Una Aplicacin ms Complicada:
El siguiente ejemplo muestra un programa que esta dividido en dos archivos: Un
Archivo de Proyecto (.dpr) y una unidad (.pas). El Archivo de Proyecto, es llamado
SegundoEjemplo.dpr, se ve como sigue:

Ing. Amrico Torres Gonzales

7 Embarcadero Delphi / Introduccin

Explicacion:
La primera lnea declara un programa llamado SegundoEjemplo, el cual nuevamente,
es una aplicacin de consola. La clausula uses Unit2 in Unit2.pas le dice al compilador
que el programa SegundoEjemplo depende de una unidad llamada Unit2. Finalmente,
el programa llama al procedimiento PrintMessage, pasndole la cadena Hola Mundo!.
Este procedimiento esta definido en Unit2. Aqu el cdigo fuente de Unit2, la cual esta
grabada en un archivo llamado Unit2.pas:

Esta unidad define un procedimiento llamado PrintMessage que toma una cadena
como argumento y la enva a la salida estndar (En Delphi, las rutinas que no retornan
un valor son llamadas Procedimientos. Mientras que las rutinas que si retornan un
valor son llamadas Funciones). Nota que PrintMessage es declarada dos veces en
Unit2. La primera declaracin, bajo la palabra reservada interface, hace PrintMessage
disponible para otros mdulos (como SegundoEjemplo) que usa Unit2. La segunda
declaracin, bajo la palabra reservada implementation, realmente define
PrintMessage.
6.3 Una Aplicacin VCL:
Nuestro siguiente ejemplo es una aplicacin construida usando los Componentes de la
Librera Visual (VCL) integrados en el IDE. Este programa usa un formulario generado
automticamente y archivos de recursos, de modo que este proyecto no podr ser
compilado desde el cdigo fuente solo, sino usando la opcin Compilar del IDE. Este
ejemplo ilustra caractersticas importantes del lenguaje Delphi. Adicionalmente a
mltiples unidades, el programa usa clases y objetos.
Ing. Amrico Torres Gonzales

8 Embarcadero Delphi / Introduccin


Aqu paso a paso la creacin de una Aplicacin VCL:
Paso 1: Elegir la opcin File > New > VCL Forms Application Delphi:

Paso 2: Desplegar los componentes VCL de la opcin Standard de la ventana Paleta


de Herramientas (ToolPalette) ubicada por defecto en la esquina inferior derecha
del IDE, luego buscar el componente llamado
acto seguido hacer 1 click sobre el formulario:

y hacer 1 click en el,

Ing. Amrico Torres Gonzales

9 Embarcadero Delphi / Introduccin

Paso 3: Agregamos un Segundo Formulario al Proyecto. File > New > Form
Delphi:

Paso 4: Agregar un TButton tambin a este formulario:

Paso 5: Hacer doble click sobre el Boton Recien Agregado al formulario y agregar la
lnea de cdigo siguiente:
Ing. Amrico Torres Gonzales

10 Embarcadero Delphi / Introduccin

Nota: puede ser form2 (en vez de form3) en la mayora de los casos.
Paso 6: Hacer Shift+F12, elegir Form1 y pulsar el botn Ok:

Paso 7: Hacer doble click en el botn del Formulario 1 e ingresar las lneas de
cdigo siguientes:

Ing. Amrico Torres Gonzales

11 Embarcadero Delphi / Introduccin


Paso 8: Finalmente, ejecutar el programa pulsando F9 o hacer click en el botn de
ejecucin:

Ing. Amrico Torres Gonzales