Introducción A Delphi
Introducción A Delphi
Índice
Uso y variantes
El lenguaje de programación
Componentes
Eventos
Base de datos
Borland Database Engine (BDE)
Desarrollo visual
Entorno Integrado de Desarrollo (IDE o EDI)
Depurador integrado
Proyectos alternativos
El nombre Delphi
Turbo Delphi
Véase también
Enlaces externos
Uso y variantes
Un uso habitual de Delphi, aunque no el único, es el desarrollo de aplicaciones visuales y
de bases de datos cliente-servidor y multicapas. Debido a que es una herramienta de
propósito múltiple, se usa también para proyectos de casi cualquier tipo, incluyendo
aplicaciones de consola, aplicaciones de web (por ejemplo servicios web, CGI, ISAPI,
NSAPI, módulos para Apache), servicios COM y DCOM, y servicios del sistema
operativo. Entre las aplicaciones más populares actualmente destaca Skype, un
programa de telefonía por IP.
El lenguaje de programación
Delphi está basado en una versión de Pascal denominada Object Pascal. Borland en los
últimos años defendía que el nombre correcto del lenguaje es también Delphi,
posiblemente debido a pretensiones de marca, aunque en sus mismos manuales el
nombre del lenguaje aparecía como Object Pascal, por lo que la comunidad de
programadores no ha adoptado mayoritariamente este cambio (supuesta aclaración,
según Borland). Object Pascal expande las funcionalidades del Pascal estándar:
Esto permitió a los desarrolladores noveles (principiantes) y avanzados contar con una
herramienta clara y de fácil manejo, moderna, capaz de ejecutar con gran velocidad,
procedimentos intrínsecos, que permiten obtener resultados inmediatos y a bajo costo.
Entre sus características principales, destaca lo atractivo del producto final, debido al
apoyo de su interfaz gráfica de desarrollo, por lo que se sitúa en la categoría de lenguajes
visuales, pero no todo es bondad, una desventaja con los programas no visuales, es la
gran cantidad de memoria que emplea y que su ejecutable resulta demasiado grande en
comparación con uno hecho en lenguaje C, pero esta desventaja se compensa con el
tiempo de desarrollo de una aplicación; se sacrifica espacio, pero se gana velocidad.
Componentes
Delphi dio una implementación muy buena a la idea del uso de componentes, que son
piezas reutilizables de código (clases) que pueden interactuar con el IDE en tiempo de
diseño y desempeñar una función específica en tiempo de ejecución. Desde un enfoque
más específico de la herramienta, se catalogan como componentes todos aquellos
objetos que heredan de la clase TComponent, donde se implementa la funcionalidad
necesaria para interactuar con el entorno de desarrollo, la carga dinámica
desde streams y la liberación de memoria mediante una jerarquía. Una gran parte de los
componentes disponibles para Delphi son controles (derivados de TControl), que
encapsulan los elementos de interacción con el usuario como botones, menús, barras de
desplazamiento, etcétera.
Delphi incluye una biblioteca de clases bien diseñada denominada VCL (Visual
Component Library, Biblioteca de Componentes Visuales) y, en sus versiones 6 y 7, una
jerarquía multiplataforma paralela denominada CLX. Esta también se incluye en Kylix.
Estas jerarquías de objetos incluyen componentes visuales y no visuales, tales como los
pertenecientes a la categoría de acceso a datos, con los que puede establecerse
conexiones de forma nativa o mediante capas intermedias (como ADO, BDE u ODBC) a
la mayoría de las bases de datos relacionales existentes en el mercado. La VCL también
está disponible para el desarrollo en .NET.
Eventos
Delphi permite de manera sencilla ejecutar trozos de código en respuesta a acciones
o eventos (sucesos) que ocurren durante el tiempo que un programa se ejecuta. Por
ejemplo, cuando se presiona un botón, la VCL captura la notificación estándar de
Windows, y detecta si hay algún método asociado al evento OnClick del botón. Si lo hay,
manda ejecutar dicho método.
Base de datos
Una de las principales características y ventajas de Delphi es su capacidad para
desarrollar aplicaciones con conectividad a bases de datos de diferentes fabricantes. El
programador de Delphi cuenta con una gran cantidad de componentes para realizar la
conexión, manipulación, presentación y captura de los datos, algunos de ellos liberados
bajo licencias de código abierto o gratuitos. Estos componentes de acceso a datos
pueden enlazarse a una gran variedad de controles visuales, aprovechando las
características del lenguaje orientado a objetos, gracias al polimorfismo.
Hay motores que permiten conectarse a bases de datos de diferentes fabricantes tales
como BDE, DBExpress o ADO, que cuentan con manejadores para los formatos más
extendidos.
También hay componentes de conexión directa para un buen número de bases de datos
específicas: Firebird, Interbase, Oracle, etcétera.
Interbase/Firebird: IBX (InterBase eXpress), IBO (IB Objects), MDO (Mercury Data
Objects), *DBExpress, BDE, FibPlus, Zeos
Oracle: DOA (Direct Oracle Access), NCOci8
dBase: BDE
FoxPro: BDE
Paradox: BDE
Microsoft SQL Server: BDE, ADO, *DBExpress
mySQL: Zeos (nativo), *DBExpress, BDE y ADO (usando ODBC)
PostgreSQL: BDE, ADO, ZEOSDBO
Su uso, va siendo cada vez menor, debido a la pobre gestión de memoria que realiza,
sustituyéndolo por componentes más actualizados y especializados como DOAC (Direct
Oracle Access Components), DBExpress o ZEOS, esto sumado a la fiabilidad que están
presentando los nuevos gestores de Datos en especial tecnologías como RDO y ADO; los
cuales son mantenidos por sus fabricantes, forzando la compatibilidad con las versiones
preliminares; liberando al programador de actualizaciones en cuanto a gestión de datos.
Actualmente ya no es desarrollado por Codegear.
Desarrollo visual
Como entorno visual, la programación en Delphi consiste en diseñar los formularios que
componen al programa colocando todos sus controles (botones, etiquetas, campos de
texto, etc.) en las posiciones deseadas, normalmente usando un ratón. Luego se asocia
código a los eventos de dichos controles y también se pueden crear módulos de datos,
que regularmente contienen los componentes de acceso a datos y las reglas de negocio
de una aplicación.
Depurador integrado
Es una potente característica que nos permite establecer puntos de ruptura
(breakpoints), la ejecución paso a paso de un programa, el seguimiento de los valores de
las variables y de la pila de ejecución, así como la evaluación de expresiones con datos
de la ejecución del programa. Con su uso, un programador experimentado puede
detectar y resolver errores lógicos en el funcionamiento de un aplicativo desarrollado
con Delphi. En las ediciones Client/Server y Enterprise se añade la opción
de depuración de programas corriendo en equipos remotos (remote debugging), lo que
posibilita el uso de todas las características del depurador con un programa
ejecutándose en su entorno normal de trabajo y no en el ordenador del programador (en
donde muchas veces no ocurren los errores).
Proyectos alternativos
Existen desarrollos de la comunidad del software libre que intentan producir una
versión multiplataforma y completamente independiente de Delphi. La más
desarrollada es el llamado Lazarus.
El nombre Delphi
El nombre Delphi hace referencia al oráculo de Delfos. Borland eligió ese nombre para
resaltar su principal mejora con respecto a su antecesor (Turbo Pascal), que sería su
conectividad con bases de datos Oracle (oráculo, en inglés). El nombre se suele
pronunciar delfi en Europa, incluida Gran Bretaña. En cambio, en Estados Unidos se
usa la pronunciación delfai puesto que existe una ciudad llamada Delphi con esa
pronunciación. Esta última, delfai, es la preferida por Borland.
Turbo Delphi
En septiembre de 2006 Borland lanzó TurboDelphi como una versión reducida de
Delphi. Hay dos versiones: Turbo Delphi for Windows (Win32) y Turbo Delphi
for .NET, ambas disponibles en dos ediciones Professional y Explorer, esta última
era gratuita.
Véase también
C++Builder
Visual Component Library
Lazarus
Enlaces externos
Página oficial en el sitio de Embarcadero (en inglés)
Torry's Delphi Pages Uno de los más conocidos sitios de intercambio de
componentes
Felix Colibri (en inglés) source code (database, Socket programming, Asp.Net
helpers, SQL parser, design patterns, ADO Net tutorial)