Sei sulla pagina 1di 13

PRESENTACIN

Delphi es un entorno de desarrollo rpido de software diseado para la programacin de propsito general con nfasis en la programacin visual. Se utiliza una versin moderna de Pascal llamada Object Pascal. Es producido comercialmente por la empresa norteamericana BORLAND. En sus diferentes variantes, permite producir archivos ejecutables para Windows, GNU/Linux y la plataforma .NET

Tabla de contenidos

1 Uso y variantes 2 El lenguaje de programacin


o o o o

Tipos de herencia Manejo de excepciones Otras caractersticas Objetos y Memoria

3 4 4 5 6 7

Componentes La Biblioteca en tiempo de ejecucin Eventos Base de Datos Desarrollo visual Entorno Integrado de Desarrollo (EID)
o

Los archivos creados por y para el sistema

8 Depurador integrado 9 Proyectos alternativos 10 El nombre Delphi 11 Ediciones de Delphi

1. Uso y variantes
El principal uso de Delphi es para el desarrollo de aplicaciones visuales y de bases de datos cliente-servidor y multicapas. Debido a que es una herramienta de propsito mltiple, se usa tambin para proyectos de casi cualquier tipo, incluyendo aplicaciones de consola, servicios del sistema operativo Delphi inicialmente slo produca ejecutables binarios para Windows (Win16 y Win32). En la actualidad da ms posibilidades:

Delphi 2005 incluye en el mismo entorno de desarrollo los lenguajes:


Delphi para Win32 Delphi para .NET C# para .NET

Existe una versin de Delphi para sistemas Unix y Linux, denominada Kylix (de la cual existe una versin gratuita, aunque limitada).

2. El lenguaje de programacin
Delphi est basado en una versin moderna de Pascal, llamada Object Pascal, que amplia las posibilidades de su lenguaje fuente:

Soporte para la programacin orientada a objetos, tambin existente desde Turbo Pascal 5, pero mucho mas avanzada, en cuanto a: o Objetos en s: clases, instancias, etc. o Encapsulacin: declarando partes privadas, protegidas, pblicas o Propiedades : concepto nuevo que luego han adaptado muchos otros lenguajes. o Herencia simple y Polimorfismo. Soporte para excepciones, mejorando sensiblemente el manejo de errores de usuario y del sistema. Programacin manejada por eventos (event-driven), posible gracias a las ya mencionadas propiedades de los objetos.

La mayora de los lenguajes de programacin modernos soportan programacin orientada a objetos (OOP). Los lenguajes OOP se basan en tres conceptos fundamentales: La Encapsulacin. La herencia. El polimorfismo. En programacin orientada a objetos, se denomina Encapsulacin al ocultamiento del estado, es decir, de los datos, de un objeto de manera que slo se puede cambiar mediante las operaciones definidas para ese objeto. De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas. El ENCAPSULADO tambin indica que solo es revisado por un usuario externo. Pero este usuario solo puede revisar o mirar, ciertas partes de la clase. Como ejemplo un circuito electrnico en una caja (ocultado). El usuario solo accede a ciertas partes del circuito, mas las partes del circuito internas s pueden compartir informacin entre el mismo encapsulado. Existen tres principales formas de encapsulado: 1) estndar 2) abierto 3) cerrado Una clase puede tener cualquier cantidad de datos. Sin embargo, para conseguir una buena tcnica orientada a objetos, los datos deberan estar ocultos o encapsulados dentro de la clase que los usa. Por ejemplo: cuando se accede a una fecha, no tiene sentido cambiar slo el valor del da directamente. De hecho, si se cambia el valor del da podra resultar una fecha no vlida, como el 30 de febrero, por ejemplo. Si se usan mtodos para acceder a la representacin interna de un objeto, se limita el riesgo de generar situaciones errneas, puesto que los mtodos pueden verificar si la fecha es vlida y negarse a modificar el nuevo valor si no lo es. La herencia es uno de los mecanismos de la programacin orientada a objetos, por medio de la cual una clase se deriva de otra de manera que extiende su funcionalidad. Una de sus funciones ms importantes es la de proveer Polimorfismo y late binding .

Tipos de herencia

Herencia sencilla: Un objeto puede extender las caractersticas de otro objeto y de ningn otro, es decir, solo puede tener un padre. Herencia mltiple: Un objeto puede extender las caractersticas de uno o ms objetos, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseadores de lenguajes. Algunos de ellos han preferido no admitir la herencia mltiple por las posibles coincidencias en nombres de mtodos o datos miembros. Por ejemplo C++ admite herencia mltiple, Java y Ada slo herencia simple.

En programacin orientada a objetos se denomina polimorfismo a la capacidad del cdigo de un programa para ser utilizado con diferentes tipos de datos u objetos. Tambin se puede aplicar a la propiedad que poseen algunas operaciones de tener un comportamiento diferente dependiendo del objeto (o tipo de dato) sobre el que se aplican. El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. As nacen los conceptos de funciones polimrficas y tipos polimrficos . Las primeras son aquellas funciones que pueden evaluarse y ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimrficos , son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no est especificado.

Se puede clasificar el polimorfismo en dos grandes clases:

Polimorfismo dinmico: es aqul en el que el cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo de datos compatible. Polimorfismo esttico: es aqul en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.

Manejo de excepciones
El Manejo de excepciones es una estructura de control de los lenguajes de programacin diseada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla. Por ejemplo, un programa puede admitir como aceptable cierto nmero de errores en el formato de los datos y continuar su proceso de manera de producir el mejor resultado posible en lugar de producir una salida aparatosa con condiciones de error probablemente incomprensibles para el usuario. Muchas veces la accin asociada a una excepcin es simplemente producir un mensaje informativo y terminar, otras veces, es slo indicacin de la necesidad de un cambio en la estrategia de resolucin del problema. Algunos lenguajes de programacin, por ejemplo Lisp, Ada. C++, Delphi, Objective C, Java, Eiffel y Ocaml incluyen soporte para el manejo de excepciones. En esos lenguajes, al producirse una excepcin se desciende en la pila de ejecucin hasta encontrar un manejador para la excepcin, el cual toma el control en ese momento. Ejemplo de manejo de excepcin en Delphi:
Procedure TForm1.Button1Click(Sender : TObject); Begin try try a := b / c; except on e:EZeroDivide do // Manejo de la excepcin Divisin por cero. on e:Exception do // Manejo de una excepcin "genrica". end; finally // Este cdigo siempre se ejecuta, independientemente de si ocurre o no una excepcin. end; end;

Otras caractersticas
El lenguaje Delphi es una extensin del clsico lenguaje Pascal orientado a objetos, que Borland ha liderado durante muchos aos con sus compiladores Turbo Pascal. La sintaxis del lenguaje Pascal suele considerarse bastante explcita y ms legible que, por ejemplo el lenguaje C. Su extensin orientada a objetos sigue el mismo enfoque, ofreciendo la misma potencia de los recientes lenguajes Orientados a Objetos (OOP), desde Java a C#. Incluso el ncleo del lenguaje est sujeto a cambios continuos, pero algunos de ellos afectarn a las necesidades diarias de programacin. En Delphi 6, por ejemplo, Borland aadi el soporte para varias caractersticas ms o menos relacionadas con el desarrollo de Kylix, la versin para Linux de Delphi Por otro lado, Delphi 7 aade tres advertencias del compilador adicionales: tipo inseguro, cdigo inseguro, y conversin insegura. Estas advertencias se emiten en caso de operaciones que no se puedan utilizar para generar cdigo gestionado seguro sobre la plataforma Microsoft .NET. En algunos lenguajes orientados a objetos, al declarar una variable de un tipo clase, se crea una instancia de dicha clase. En Delphi, en cambio, se basa en un modelo de referencia a objetos. La idea es que una variable de un tipo de clase, no mantiene el valor del objeto. En lugar de eso, contiene una referencia, o un puntero, para indicar la posicin de memoria en la que se ha almacenado el objeto. El nico problema de esta tcnica es que cuando se declara una variable, no se crea un objeto en memoria (lo que es inconsistente con el resto de variables, confundiendo a los nuevos usuarios de Delphi); slo se reserva la posicin de memoria para una referencia al objeto. Las instancias de los objetos habrn de crearse manualmente, al menos para los objetos de las clases que se definan; todo esto mediante la aplicacin de un constructor a su clase.

Objetos y memoria
La administracin de memoria en Delphi est sujeta a tres normas, al menos si se permite que el sistema trabaje en armona sin violaciones de acceso y sin consumir memoria innecesaria: Todo objeto ha de ser creado antes de que pueda usarse. Todo objeto ha de ser destruido tras haberlo utilizado. Todo objeto ha de ser destruido slo una vez.

3. Componentes
Delphi introdujo la idea del uso de componentes, que son piezas reutilizables de cdigo (clases) que pueden interactuar con el EID en tiempo de diseo y desempear una funcin especfica en tiempo de ejecucin. Desde un enfoque ms tcnico, se catalogan como componentes todos aquellos objetos que heredan desde la clase TComponent. Una gran parte de los componentes disponibles para Delphi son controles (derivados de TControl), que encapsulan los elementos de interaccin con el usuario (botones, mens, barras de desplazamiento, etc). Delphi incluye una biblioteca de clases bien diseada denominada VCL (Visual Component Library , Biblioteca de Componentes Visuales) y, en sus versiones 6 y 7, una jerarqua multiplataforma paralela denominada CLX. sta tambin se incluye en Kylix. Estas jerarquas de objetos incluyen componentes visuales y no visuales, tales como los pertenecientes a la categora de acceso a datos, con los que puede establecerse conexiones de forma nativa o mediante capas intermedias (como ADO, BDE u ODBC) a la mayora de las bases de datos relacionales existentes en el mercado. La VCL tambin est disponible para el desarrollo en .NET. Adems de poder utilizar en un programa estos componentes estndar (botones, grillas, conjuntos de datos, etc.), es posible crear nuevos componentes o mejorar los ya existentes, extendiendo la funcionalidad de la herramienta. En Internet existe un gran nmero de componentes, tanto gratuitos como comerciales, disponibles para los proyectos a los que no les basten los que vienen ya con la herramienta.

4. La biblioteca en tiempo de ejecucin


El lenguaje de programacin Delphi favorece un enfoque orientado a objetos, junto con un estilo visual de desarrollo. Es aqu donde sobresale Delphi; sin embargo, muchas de las caractersticas listas para ser utilizadas de Delphi proceden de su biblioteca en tiempo de ejecucin (RTL). Se trata de un conjunto de funciones que puede utilizar para realizar tareas sencillas, al igual que algunas complejas, dentro de su propio cdigo Pascal. En Delphi 6 y Delphi 7 se aportaron algunas mejoras. Estn disponibles nuevos grupos de funciones, se han desplazado funciones a nuevas unidades y han cambiado otros elementos, lo que crea unas pocas incompatibilidades con el cdigo antiguo a partir del cul podra adaptar sus proyectos.

En las nuevas versiones de Delphi, la RTL posee una nueva estructura y varias unidades nuevas. Borland aadi nuevas unidades ya que tambin aadi numerosas funciones nuevas. En la mayora de los casos, las funciones existentes se encuentran en las unidades en las que solan estar, pero las nuevas funciones aparecen ahora en unidades especficas. Hasta la versin 5, la biblioteca de clases de Delphi era conocida como VCL, que significa Biblioteca de Componentes Visuales. Se trata de una biblioteca de componentes que se proyecta sobre la API de Windows. Kylix, la versin de Delphi para Linux, introdujo una nueva biblioteca de componentes, denominada CLX, pronunciando clics, y que significa Biblioteca de Componentes para Plataforma X o Multiplataforma. Delphi 6 fue la primera versin en incluir ambas bibliotecas. Para los componentes visuales, las dos bibliotecas resultan alternativas. Sin embargo, las clases principales y las partes de la base de datos e internet de las dos bibliotecas son bsicamente compartidas. La VCL estaba considerada como una gran biblioteca nica, aunque los programadores solan referirse a diferentes partes de ella (componentes, controles, componentes no visuales, conjuntos de datos, controles data-aware, componentes de internet, etc). CLX presenta una divisin en cuatro partes: BaseCLX, VisualCLX, DataCLX y NetCLX. En las versiones ms recientes de Delphi, esta distincin se ve resaltada por el hecho de que los componentes y las clases centrales no visuales de la biblioteca forman parte del nuevo paquete RTL, que utilizan tanto la VCL como la CLX. An ms utilizar este paquete en aplicaciones no visuales (por ejemplo: en programas de servidor Web) permite reducir considerablemente el tamao de los archivos que se van a desplegar y cargar en memoria.

5. Eventos
Delphi permite de manera sencilla ejecutar trozos de cdigo en respuesta a acciones o eventos (sucesos) que ocurren durante el tiempo que un programa se ejecuta. Por ejemplo, cuando se presiona un botn, la VCL captura la notificacin estndar de Windows, y detecta si hay algn mtodo asociado al evento OnClick del botn. Si lo hay, manda ejecutar dicho mtodo.

Los eventos pueden generarse debido a la recepcin de seales desde elementos de hardware como el ratn o el teclado, o pueden producirse al realizar alguna operacin sobre un elemento de la propia aplicacin (como abrir un conjunto de datos, que genera los eventos BeforeOpen/AfterOpen ). La VCL ha demostrado estar bien diseada y el control que se tiene a travs de los eventos de la misma es suficiente para la gran mayora de aplicaciones. Otros eventos los produce el sistema, en respuesta a una llamada de mtodo o un cambio de una de las propiedades del componente. Tcnicamente, la mayora de los eventos de Delphi se desencadenan al recibir el mensaje correspondiente del sistema operativo, aunque no existe un mensaje individual para cada evento. Los eventos de Delphi suelen ser de mayor nivel que los mensajes del sistema operativo y Delphi ofrece una serie de mensajes adicionales entre componentes.

6. Base de Datos
El soporte de Delphi para aplicaciones de bases de datos es una de las caractersticas clave del entorno de programacin. Maneja casi todo tipo de base de datos, desde bases de datos planas (dBase, Foxpro, Paradox) a bases de datos SQL (Oracle, MS-SQL, Interbase, FireBird, MySQL, etc). El mtodo de conexin puede ser por nativo por medio de D B Express, ADO, DBE y/o ODBC). Muchos programadores pasan la mayor parte de su tiempo escribiendo cdigo de acceso a los datos, que necesita ser la parte ms robusta de una aplicacin de bases de datos. En las primeras versiones de Delphi, la nica tecnologa disponible para acceder a los datos de bases de datos era utilizar el Borland Database Engine (BDE). Desde Delphi 3, la parte de la VCL relacionada con el acceso a bases de datos se ha reestructurado para abrirla ms a diversas soluciones de acceso a bases de datos entre las que en la actualidad se incluye ADO, componentes InterBase nativos, la biblioteca dbExpress y BDE. Muchas terceras partes ofrecen mecanismos alternativos de acceso a bases de datos para una amplia variedad de formatos de datos (aunque algunos no sean accesibles como componentes de Borland) y ofrecen an as una solucin integrada con la VCL de Delphi.

7. Desarrollo visual
Como entorno visual, la programacin en Delphi consiste en disear los formularios que componen al programa colocando todos sus controles (botones, etiquetas, campos de texto, etc.) en las posiciones deseadas, normalmente usando un ratn. Luego se asocia cdigo a los eventos de dichos controles y tambin se pueden crear mdulos de datos, que regularmente contienen los componentes de acceso a datos y las reglas de negocio de una aplicacin. Como hemos podido apreciar, Delphi dispone de dos bibliotecas de clases visuales: la biblioteca multiplataforma CLX y la tradicional biblioteca de Windows VCL. Existen muchas diferencias, incluso en el uso de la RTL y de las clases de la biblioteca de cdigo, entre desarrollar programas para Windows o con un enfoque multiplataforma y estas diferencias resultan ms notables en la interfaz del usuario. La parte visual de la VCL es un envoltorio de la API de Windows. Contiene envoltorios de controles originarios de Windows (como botones y los cuadros de edicin), de controles comunes (como vistas en rbol y vistas en lista), adems de una serie de controles originarios de Delphi ligados al concepto Windows de ventana. VisualCLX, la parte visual de CLX, es un envoltorio de la biblioteca Qt. Contiene envoltorios nativos de Qt, que van de controles bsicos a controles avanzados, muy similares a los controles estndar de Windows.

8. Entorno Integrado de Desarrollo (EID)


IDE en ingls (Integrated Development Environment), es el ambiente de desarrollo de programas de Delphi. Se trata de un editor de formularios (que permite el desarrollo visual), un potente editor de textos que resalta la sintaxis del cdigo fuente, la paleta de componentes y el depurador integrado, adems de una barra de botones y un men que nos permite la configuracin de la herramienta y la gestin de proyectos. En las ediciones Client/Server y Enterprise el EID tambin ofrece integracin con una herramienta de control de versiones (PVCS). Cuando se trabaja con un entorno de desarrollo visual, el tiempo se emplea en dos partes distintas de la aplicacin: en los asistentes de diseo visual y en el editor de cdigo. Los asistentes de diseo permiten trabajar con componentes a un nivel visual (como cuando se coloca un botn sobre un formulario) o a un nivel no visual (como cuando se sita un componente DataSet sobre un mdulo de datos).

El modo ms obvio para cdigo en un entorno visual implica responder a eventos, comenzando por los eventos enlazados con las operaciones realizadas por los usuarios del programa como hacer clic sobre un botn o escoger un elemento de un cuadro de lista. Puede usarse el mismo enfoque para manejar eventos internos, como los eventos que implican cambios en bases de datos o notificaciones del sistema operativo. Por primera vez en Delphi 6 apareci un importante cambio. El IDE permite ahora utilizar dos bibliotecas de componentes distintas: la VCL (Visual Componente Library, Biblioteca de componentes visuales) y la CLX (Component Library for Cross-Platfor, Biblioteca de componentes para multiplataforma). Cuando creamos un nuevo proyecto, sencillamente escogemos cual de las dos bibliotecas queremos emplear.

Los archivos creados por y para el sistema


Delphi produce diversos archivos para cada proyecto y sera conveniente saber qu son y cmo se denominan. Hay dos elementos que influyen en su denominacin; los nombres que se dan a los proyectos y a sus unidades, y las extensiones predefinidas de los archivos que utiliza Delphi. Aqu pueden apreciarse algunos ejemplos:

EXTENSIN

TIPO DE ARCHIVO Y DESCRIPCIN

MOMENTO DE CREACION

NECESARIO PARA COMPILAR?

.BMP, .ICO, .CUR

.BPG

.BPL

Archivos de mapas de bits, iconos y cursores: archivos estndar de Windows usados para almacenar imgenes de mapas Grupo de proyectos Borland: archivos que usa el nuevo Proyect Manager. Biblioteca de paquetes Borland: una DLL que contiene componentes VCL que usa el entorno Delphi en tiempo

Desarrollo: Image Editor

Normalmente no, pero pueden ser necesarios en tiempo de ejecucin y para una posterior modificacin Necesario para compilar de nuevo todos los proyectos del grupo a la vez. Se distribuirn a otros desarrolladores Delphi y opcionalmente a usuarios finales

Desarrollo

Compilacin: Enlace

.CAB

.CFG

.DCP

de diseo o las aplicaciones en tiempo de ejecucin Compilacin Formato de Archivo comprimido de Microsoft Cabinet usado por Delphi para el despliegue Web. Desarrollo Archivo de configuracin con las opciones de proyecto. Paquete Compilacin componentes de Delphi: un paquete con informacin de smbolos para el cdigo compilado en el paquete

Distribuido a usuarios

Necesario solo si se han definido opciones especiales de compilacin Necesario cuando usamos paquetes, Slo se distribuye a otros desarrolladores junto con los archivos BDPL.

9. Depurador integrado
Es una potente caracterstica que nos permite establecer puntos de ruptura (breakpoints), la ejecucin paso a paso de un programa, el seguimiento de los valores de las variables y de la pila de ejecucin, as como la evaluacin de expresiones con datos de la ejecucin del programa. Con su uso, un programador experimentado puede detectar y resolver errores lgicos o semnticos en el funcionamiento de un aplicativo desarrollado con Delphi. En las ediciones Client/Server y Enterprise se aade la opcin de depuracin a programas corriendo en equipos remotos (remote debugging ), lo que posibilita el uso de todas las caractersticas del depurador con un programa ejecutndose en su entorno normal de trabajo y no en el ordenador del programador (en donde muchas veces no ocurren los errores). Cuando se ejecuta un programa en el IDE de Delphi, generalmente se arranca en el depurador integrado. Se puede entre otras opciones ya mencionadas, explorar sus detalles internos; como el cdigo ensamblador que se ejecuta y el uso de los registros de la CPU.

10. Proyectos alternativos


Existen desarrollos de la comunidad del software libre que intentan producir una versin multiplataforma y completamente libre de Delphi. La ms desarrollada es el llamado Lazarus.

11. El nombre Delphi


El nombre Delphi hace referencia al orculo de Delfos. Borland eligi ese nombre para resaltar su principal mejora con respecto a su antecesor (Turbo Pascal), que sera su conectividad con bases de datos Oracle (orculo, en ingls). El nombre se suele pronunciar delfi en los pases de habla hispana. En ingls, aunque tambin se usa la antedicha, la que predomina es delfai (es la preferida por Borland).

12. Ediciones de Delphi


Las ediciones de Delphi actuales son las siguientes: La edicin Personal: dirigida a quienes empiezan a utilizar Delphi y a programadores espordicos. No soporta programacin de bases de Datos ni ninguna de las caractersticas avanzadas de Delphi. La edicin Professional Studio: Dirigida a desarrolladores profesionales. Posee todas las caractersticas bsicas, ms soporte para programacin de bases de datos (como soporte ADO), soporte bsico para servidores Web (WebBroker)y algunas de las herramientas externas como ModelMaker e IntraWeb. La edicin Enterprise Studio: Est dirigida a desarrolladores que crean aplicaciones para empresas. Incluye todas las tecnologas XML y de servicios Web avanzados, soporte de CORBA, internacionalizacin, arquitectura en tres niveles y muchas otras herramientas. La edicin Architect Studio: Aade a la edicin Enterprise el soporte de Bold, un entorno para la creacin de aplicaciones dirigidas en tiempo de ejecucin por un modelo UML y capaces de proyectar sus objetos tanto sobre una base de datos como sobre una interfaz de usuarios, gracias a una gran cantidad de componentes avanzados.

Potrebbero piacerti anche