Borland Delphi Indice Titulo Pagina Introducción 3 Programación Orientada a Objetos 4 Encapsulación 4 Herencia 4 Polimorfismo 5 ¿Que es Delphi?

7 Memoria Principal 8 Sistemas Operativos Soportados 8 Espacio Necesario en el Disco Duro 9 El entorno Delphi 9 La Ventana Principal 10 La Ventana de Programa 10 El Object Inspector 11 El Editor de Código Fuente 13 Desarrollo Visual de un Programa 14 Variables, Tipos de Datos y Constantes 15 Declaración de Variables 15 Asignación de Valores a Variables 17 Tipos de Datos Estándar 18 Instrucciones más Importantes 19 La Instrucción IF 19 La Instrucción CASE 21

1

La Instrucción REPEAT 23 La Instrucción WHILE 25 La Instrucción FOR 27 Diferencias entre Visual Basic y Delphi 29 Glosario de Términos 30 Dedicatorias y Consideraciones Finales 31 Bibliografía 32 Conclusión 33 Introducción Inprise es una firma sobradamente conocida por la calidad de sus herramientas de desarrollo entre las que cabe destacar Borland C++, Borland C++ Builder, Borland Intrabuilder, Borland Jbuilder y sobretodo Borland Delphi. Borland Delphi que represento la primera apuesta de Inprise por un entorno de desarrollo netamente visual, sigue evolucionando y lo hace convirtiéndose en una herramienta de ultima generación sumamente avanzada. El entorno de desarrollo de Borland Delphi es simple, flexible y potente al mismo tiempo, contando con un gran numero de componentes prefabricados que simplificarán de forma notable la creación de cualquier aplicación. El lenguaje de base de Borland Delphi es Object Pascal, una potente versión de Pascal que hereda toda la experiencia que Inprise ha adquirido durante mas de una década de desarrollo de compiladores de este lenguaje. Algo que diferencia a Delphi de muchos otros competidores es el echo de tratarse de un compilador altamente optimizado, que genera código directamente ejecutable, no pseudo − código que debe ser interpretado posteriormente en tiempo de ejecución. Esto tiene básicamente dos consecuencias: el ejecutable es más rápido, al no tener que ser interpretado en tiempo de ejecución y el tamaño total final de la aplicación suele ser inferior ya que no es necesaria la distribución adicional del programa que interpreta y ejecuta el código al que se suele denominar Runtime. Programación Orientada al Objeto La programación orientada al objeto no es mas que una evolución de los lenguajes estructurados hacia una simplificación del mantenimiento del código, así como mayores posibilidades de reutilización de este. Generalmente la POO se asocia rápidamente con lenguajes como C++, pero Object Pascal, de ahí su nombre cuenta con todos los componentes básicos de un lenguaje orientado a objetos con la encapsulación, la herencia y el polimorfismo. Encapsulación Generalmente partiendo de un correcto diseño de los tipos de objetos, los datos que se declaren en el interior del objeto solo serán manipulados por los métodos de ese objeto. A esta característica de los objetos se la conoce como encapsulación, ya que en cierta forma aísla los datos y 2

se le llama tipo derivado o descendente. nos indica que se trata de algo capaz de presentarse o adoptar diversas formas. vera que si el tipo Tvehiculo incorpora un cierto miembro. Lo mismo ocurre con un camión. La encapsulación es uno de los pilares de la POO. permite manipular objetos de distintos tipos de una genérica. Una variable del tipo Tautomovil podría apuntar a un Tcamion. este será heredado por todos los demás tipos. Por lo tanto. ya que tomada la definición de un objeto y la implementación de los métodos podemos trabajar sobre ellos sabiendo de antemano que forman una entidad totalmente independiente del resto de la aplicación. Los miembros de Tautomovil. Al hacer que un tipo derivado herede todos los miembros del tipo base será heredado también los miembros de datos y los métodos. ya que Tvehiculo es la base de todos ellos. un turismo y un coche de competición son obviamente distintos. Analice detalladamente esta jerarquía.métodos de un objeto. por lo tanto. 95. ya que todos ellos contienen en su interior un Tvehiculo. por el contrario no podrá apuntar a un objeto Tbicicleta. 3 . un autobús o un coche. tienen muchas cosas en común: dos ejes. incluso a un Tturismo o Tberlina. Tautobus o Tcoche.11. lo que traducido a un lenguaje orientado a objetos le corresponde con un objeto que puede corresponder a distintos tipos. todos son coches. que hereda las características del anterior. Al utilizar una variable de un cierto tipo que apunte a un objeto de otro tipo. polimorfismo.1/3. Al tipo original se le conoce como tipo base o ascendente. Tanto un automóvil como una bicicleta o un ciclomotor pertenecen a una misma familia. de las cuales a su vez se van a derivar otros tipos. impidiendo así que sean usados unos parámetros erróneos al llamar a un método o que un determinado procedimiento manipule las variables que no son. ¿Qué es Delphi? • Delphi es una poderosa herramienta de desarrollo de programas que permite la creación de aplicaciones para Windows 3. etc. cuatro ruedas. En realidad. Tciclomotor y Tautomovil. como si se tratase de una cápsula. la de los vehículos. como puede ser el tren. a la que podríamos añadir múltiples medios mas. Suponga que hemos creado un tipo Tvehiculo que vamos a utilizar como base para derivar tres descendientes: Tbicicleta. avión o el carro de caballos. mientras que al nuevo tipo. usada correctamente facilitara en gran medida el mantenimiento del código. barco. sin embargo son solo herederos por sus descendientes directos e indirectos y no por el tipo Tbicicleta y sus derivados. constituyéndose la jerarquía de tipos que se muestra: Aunque un deportivo. Herencia La encapsulación es la característica de la POO que permite asociar código y datos formando objetos autosuficientes y. Otra de las características es la reutilización del código para lo cual tenemos que utilizar la herencia. A la acción de crear un tipo de objeto a partir de otro ya existente se le llama derivación. que a pesar de ser distintos siguen teniendo muchas cosas en común y se caracterizan todos por ser automóviles. 98 y NT. ahorrando mucho código. una variable del tipo Tvehiculo podría apuntar a un objeto cualquiera de esta jerarquía. constituye uno de los puntos principales de los lenguajes orientados a objetos. Polimorfismo La propia palabra.

con Delphi es posible crear de forma sencilla nuevos componentes que pueden entonces incorporarse a en la paleta de los componentes ya existentes y que pueden utilizarse de la misma forma. Este lenguaje surge a partir del desarrollo de Borland Pascal 7. un lenguaje de programación muy poderoso que esta sin dudas a la altura del C++ y que incluso lo supera en algunos aspectos. Paradox. • A diferencia de otras herramientas de desarrollo programables (Visual Basic. Ambas técnicas pueden utilizarse de forma alternativa o simultanea. • Las aplicaciones terminadas quedan disponibles como archivos ejecutables (EXE) que pueden utilizarse solos y sin bibliotecas adicionales. • Delphi dispone del Object Pascal. y ofrece una abstracción mucho mas alta del sistema operativo. Access.0. La VCL puede estructurarse libremente y así adaptarse totalmente a las situaciones de programación.0 de Borland Pascal 1.• Las aplicaciones pueden colocarse de forma muy sencilla en la pantalla según el principio de módulos. lo que permite que programas que sean desarrollados en este ultimo puedan ser convertidos a Delphi. sino que se tiene acceso a de 50 tipos de formatos de datos diferentes a través de controladores suministrados por terceros (IDAPI y ODBC*). etc. un lenguaje que ocupa un lugar muy importante en la programación de ordenadores personales. • Delphi no solo dispone de componentes para la sencilla creación de entornos como cuadros de lista. Toolbook. porque permite crear herramientas de dos formas: una de forma visual en la pantalla por medio de la función de arrastrar y colocar (Drag & Drop).0. que utiliza la memoria de forma tan intensiva. No se esta limitado a un formato de datos determinado. Consecuentemente. La programación se hace con los cómodos componentes de Delphi y no con las complejas llamadas al sistema de Windows. El Object Pascal es totalmente compatible con Borland Pascal 7. la otra es a través de la programación convencional. conmutadores o cuadro de dialogo terminados. Para ello se dispone de una paleta dotada de una gran variedad de componentes. El programador es totalmente independiente de las particularidades de Windows como manejadores. Si con esa memoria logra iniciar Delphi (lo cual no siempre esta garantizado) el sistema estará ocupado la mayor parte del tiempo colocando datos y partes del programa en el 4 . • Esta VCL es mucho más poderosa que la de Turbo Pascal o las conocidas OWL* 1. Pero también es posible de acceder en forma muy cómoda a servidores de bases de datos de otros sistemas (por ejemplo UNIX) por medio de SQL*. Uno de los aspectos mas destacados lo constituyen los componentes que Borland ha incluido en Delphi para el desarrollo rápido y sencillo de aplicaciones muy poderosas de bases de datos. como tipos de listado muy variados y contenedores generales de datos. escribiendo el código. • Delphi es una Two−Way−Tool. Con 4 MB casi no se podrá trabajar. etc.). Entre estos se encuentran todos los estándares importantes de bases de datos en el área del PC como XBase.0. punteros y funciones API*. Esto simplifica enormemente la hasta ahora poco clara programación bajo Windows. la velocidad con la que pueden ejecutarse los programas creados es muy alta. algo así como los bloques de construcción de cada programa. es decir una herramienta de dos direcciones. También hay herramientas de comunicación DDE y OLE a través de las que se pueden crear vínculos de datos y comandos con otras aplicaciones. sino que cubre con sus componentes muchos temas de programación bajo Windows: se incluye entre los mismos un complejo centro de control para la creación de aplicaciones multimedia así como una gran variedad de componentes que actúan debajo del entorno. Memoria principal También la dotación de memoria es un factor que no puede dejar de tenerse en cuenta en un producto como Delphi. esta paleta es denominada por Borland VCL*.

Pero si además de trabajar con Delphi quiere hacerlo simultáneamente con otros programas (por ejemplo. También se encuentran aquí las ordenes para compilar y ejecutar un programa escrito por uno mismo. será necesario disponer de 120 MB de espacio libre en el disco duro. etc. todas las otras ventanas también finalizan su servicio. Al menos 10 MB tienen que reservarse para textos fuente y proyectos propios que se desean desarrollar con Delphi. El entorno de Delphi La eficacia de la VCL. 5 . Después de la instalación de Delphi debe disponerse al menos de 30 Mb para el archivo de intercambio e Windows. Delphi no realizará su trabajo. Si se cierra. Sistemas Operativos Soportados Delphi necesita por lo menos Windows 3. el Object inspector.1. es una de las bases en que se apoya el programador en el trabajo con Delphi. El entorno de programación típico consta en Delphi de cuatro ventanas que comparten el espacio disponible en la pantalla. Cada una de estas ventanas puede modificarse. si no quiere que el trabajo se convierta en un reto a la paciencia.disco duro y leyéndolos entonces de nuevo desde el mismo. que representan el entorno de un programa desarrollado por uno mismo. Si Delphi se coloca en la misma unidad que la del archivo de intercambio. El modo real de su procesador. La carga y almacenamiento de proyectos pertenecen igualmente al menú. Se trata aquí de la ventana principal. En la barra de menús de la ventana principal están disponibles todas las ordenes relacionadas con el procesamiento de un proyecto concreto. Windows 3. Pero ¿para qué sirve la mejor biblioteca si no se dispone de ningún entorno adecuado para su utilización? Afortunadamente Borland ha procurado una segunda base sólida en forma de un entorno de trabajo de alto rendimiento. diseñado únicamente con la ayuda de una biblioteca de clase moderna. la VCL misma. Mientras más grandes sean sus proyectos. se requieren grandes volúmenes de datos para imágenes de fondo. no resulta adecuado con él. En total si se pretende instalar una versión completa de Delphi. Para grandes proyectos con muchas imágenes será mejor trabajar con 12 MB. mas se incrementará el tiempo de espera. entonces debe tener en cuenta esta necesidad. finalmente de una o varias ventanas de programa. La ventana principal La barra de programa del margen superior de la pantalla representa la ventana principal de Delphi. Debido a la orientación gráfica del trabajo. Con 8 MB debe ser posible trabajar de forma aceptable con Delphi. es decir. su programa preferido de dibujos para desarrollar sus imágenes propias) entonces se necesitaran16 MB o más de memoria. lo que hace que un proyecto pueda alcanzar fácilmente 400 KB o más. También puede ejecutarse Delphi bajo Windows 95. conmutadores gráficos. Windows 98 y Windows NT.0. cerrarse y volverse a abrir mediante el menú view. Espacio Necesario en el Disco Duro No debe olvidar que Windows también necesita constantemente espacio en el disco duro para el intercambio de datos y programas. así como la ocultación de todas las ventanas y ventanas adicionales (de ayuda) que están a disposición del programador en el entorno de desarrollo. el editor de código fuente y.

Para aumentar aun la claridad. captura de datos. mientras se representa en el entorno de desarrollo (no necesariamente en el programa ejecutado). como es natural. Se puede alternar de una sección a otra con la ayuda de las pestañas con inscripciones que aparecen en la parte inferior de las barras de herramientas. En el Object Inspector se indican en orden alfabético todas las propiedades y eventos del componente seleccionado en ese momento. el área mayor de la ventana principal. las listas de selección. Evidentemente aquí se encuentra el ajuste de tamaño y posición: con este fin. un borde que permite modificar la posición y el tamaño por los cuatro lados. manejo de datos. basta: el Object Inspector. que aparecerá siempre que el puntero del ratón se sitúe sobre alguno de los botones. Toda la parte derecha esta reservada para la representación de cada componente. con la ayuda de la lista desplegable en la primera línea del Object Inspector. en un programa se puede crear y utilizar cualquiera de dichos formularios. uno simplemente toma el componente deseado de la barra de herramientas de la ventana principal y lo sitúa en una ventana especialmente destinada para ello. VBX y ejemplos. se encargan de la interacción con el usuario.La barra de herramientas −extensamente equipada− ocupa. cada formulario posee. en su mitad izquierda encontramos. Se simbolizan mediante varios botones gráficos. simplemente con especificar las propiedades correspondientes y/o escribir ampliaciones propias. Naturalmente. Mientras que el formulario representa solamente el marco de un programa. los componentes se han dividido en otras paginas y ordenado temáticamente en las secciones estándar. aunque también las barras de menú o de estado cuentan entre los posibles candidatos. Con este fin muchos componentes poseen un borde que se hace visible mediante la pulsación del botón izquierdo del ratón y con cuya ayuda puede adaptarse a voluntad el tamaño en todas direcciones. adicional. también se podrán modificar a voluntad posteriormente. Si se selecciona otro componente (por ejemplo. con mucho. La interpretación de cada gráfico se simplifica con un pequeño texto. sistema. Una vez seleccionados e introducidos en el formulario. Con un formulario se pueden reproducir el aspecto y comportamiento de todo tipo de ventanas. Los componentes que se utilizan mas a menudo son los cuadros de texto. como botones de herramientas. los componentes. incluso con una sola ventana propia. El Object Inspector No obstante. de nuevo las funciones más importantes del sistema de menú. Tampoco hay ninguna diferencia entre diseñar una ventana principal o un dialogo. de modo que para su procesamiento. cada componente dispone de un gran numero de parámetros modificables. La ventana de programa un formulario para cada finalidad La creación de entornos de programa. malo seria para la eficacia del VCL que el tamaño y la posición fueran las únicas propiedades que admitieran modificaciones. los componentes contenidos en el. tienen lugar en Delphi de forma puramente visual. Como propiedades principales cabría mencionar −del mismo modo que antes para el formulario− el tamaño y la posición. o bien mediante la pulsación directa sobre otro 6 . diálogo. Afortunadamente. La modificación de la posición se realiza con un simple Drag & Drop (arrastrar y colocar). así como un parte significativa de la programación. llamado formulario formular. solo por nombrar algunos ejemplos. o los botones de alternar. es decir.

La mitad derecha contiene el valor actual de cada propiedad. las rutinas de eventos pueden agregarse repetidas veces. Consideremos primero la pagina de propiedades. Naturalmente.componente del formulario). esta lista de componentes también es distinta. Un evento que puede producirse en todos los componentes visibles es.. una opción de menú con una rutina OnClick que se encarga de la apertura de un archivo. OnClick. Dentro de ese formato de código fuente debe escribirse el código del programa deseado. Si se modifica el nombre de un evento en el Object Inspector. sea una cadena de caracteres se podría haber introducido. por ejemplo. Las propiedades y eventos se representan en el Object Inspector en distintas paginas de la ventana con la ayuda de las pestañas de la parte inferior de la ventana (o bien mediante CTRL + TAB) se puede escoger la pagina deseada. La ventana contiene los nombres de todos los lugares de corte en los que se puede añadir una rutina propia.. a la pagina de eventos del Object inspector se accede mediante la pulsación de la pestaña correspondiente en la parte inferior de la ventana o bien por medio del teclado CTRL + TAB. En su mitad izquierda. constantes determinadas. Si se añade una rutina en ese lugar de corte de eventos. por ejemplo. la palabra Acerca de. se producirá una llamada siempre que el usuario del programa pulse el botón izquierdo del ratón sobre dicho componente. así como de gráficos y textos enteros. El nombre de la rutina representa la conexión entre el evento del componente y el código fuente. el texto aparecerá en forma de inscripción. en la mitad izquierda. cadenas de caracteres. Allí se encuentran. Como ya se ha mencionado.. En caso de que la propiedad mencionada arriba Caption. y se quiere disponer de la misma función en un botón de alternar en la barra de símbolos. mientras que en el caso de un botón de alternar. Si se ha vinculado. el nombre que le pertenece se adapta automáticamente en el código fuente. Suponiendo que se estén manejando ahora las propiedades de un formulario. Como ejemplo sirve aquí una propiedad presente en muchos componentes: Caption (título). como en el caso de las propiedades. los nombres de todas las propiedades. no es necesario escribir dos veces el código de 7 . por ejemplo. Puede tratase de números. aparecerá el texto introducido en la barra de título de la ventana. el contenido del Object Inspector se adapta al instante. Cada pagina esta subdividida en dos mitades.

realizado totalmente al estilo del resto del producto con la ayuda de pestañas. Estos programas no son aptos para la ejecución por si mismos. otros crean un tipo de código intermedio comprendido y ejecutado por una biblioteca Runtime desarrollada para ello. Borland designa su nueva biblioteca de clase como VCL. que puede ser procesado directamente por el procesador.programa correspondiente. o bien con la combinación de teclas CTRL + TAB. El tipo de enlace determina el desarrollo del programa. Los archivos innecesarios pueden cerrarse mediante la opción de menú File/Close file. El editor de Código Fuente Como se ha indicado anteriormente. También se integran aquí todas las rutinas de eventos definidas. que pueden insertarse fácilmente en la ventana correspondiente mediante Drag & Drop. Ofrece una abstracción no conocida hasta la fecha de todas las singularidades especificas de Windows. En Delphi. es decir. sino solo dentro del programa en que fueron desarrollados. Con ello se aprovecha el principio que se emplea desde hace tiempo en el llamado Case − Tools*. mas el archivo de proyecto (con el que normalmente no debe hacerse nada). La velocidad de los archivos EXE creados es por consiguiente. el desarrollo de programas a partir de módulos prefabricados. puede accederse a una pagina en concreto mediante la pulsación de la pestaña correspondiente. En programas grandes pueden aparecer fácilmente varias docenas de ellos. a no ser que se programe a propósito para ello. Por otra parte. En cuanto al procesamiento de programas creados de este modo. Tipos de Datos y Constantes 8 . Unos ejecutan el programa directamente mediante el intérprete en pasos individuales. Delphi coloca para cada ventana diseñada un archivo de código fuente propio. Visual Basic es un conocido ejemplo de esto. Todo el entorno de una aplicación puede diseñarse con ella en solo una fracción de tiempo y sin conocimientos preliminares avanzados. en el editor de código fuente se encuentra el entorno creado por uno mismo. Variables. y puede competir perfectamente con programas escritos en C o en C++. que deben enlazarse solo de una manera determinada. se crea durante la compilación. alta. Por esta razón. todos los elementos de entorno y de programas listos para el uso. Igual que en el Object Inspector. El núcleo de la VCL. el editor ofrece toda una serie de otras funciones que han sido desarrolladas especialmente para las necesidades de los programadores. Con el propio sistema operativo prácticamente no se entra en contacto. Basta con indicar asimismo el nombre de la rutina ya existente en el evento OnClick del botón de alternar. Desarrollo Visual de un Programa Delphi aplica su nuevo concepto de desarrollo. Combina las ventajas de una enorme biblioteca de clase orientada al objeto con una programabilidad extremadamente sencilla − ya que es visual −. por el contrario. el editor dispone de un administrador de paginas. La ejecución es muy larga. Cada pagina contiene su propio archivo. Desgraciadamente las aplicaciones mas complejas también padecen aquí de falta de velocidad de ejecución. existen algunas diferencias. un autentico código de programa legible para la maquina. son los ya mencionados componentes. Por lo tanto un proyecto consta como mínimo de tantos archivos de código fuente como ventanas existan. Naturalmente.

funciones u objetos. Las denominadas locales o privadas no pueden declararse dos veces dentro de una misma rutina. El compilador verifica literalmente la sintaxis del programa antes de su ejecución. el compilador da un mensaje de error. Para conseguir esta condición. En la declaración propiamente dicha. Esta circunstancia se produce por la asignación de valores. A continuación se especifica la forma de declaración de las variables en una aplicación Delphi. entre otros factores. Las dos partes de la variable se dividen mediante el carácter de dos puntos. las variables globales no se diferencian de las locales. Es imposible el empleo de las variables fuera de esa rutina. & o %. se informa al compilador sobre su presencia. La indicación de tipo de datos debe ir seguida de un símbolo de punto y coma que permita al compilador identificar inequívocamente el final de la declaración de una o de más variables (y otras condiciones). En cada declaración debe figurar el nombre de la variable y el tipo de datos. En caso de una declaración duplicada. e informa al programador de la presencia de posibles errores. por ejemplo. Por otra parte los nombres de las variables. Pueden ser nombres de variables. El ámbito de aplicación de las variables globales abarca todo el módulo del programa en el que se declara la variable en cuestión. El valor de la variable puede modificarse de forma arbitraria durante la ejecución del programa. 9 . De esta manera el programador puede corregir el error aparecido y efectuar de nuevo el proceso de compilación. solamente son válidas dentro de la rutina en que están declaradas. Los identificadores no pueden tener el mismo nombre que las palabras claves en el sistema y que posean funciones determinadas. Al declarar una variable o cualquier otro tipo de identificador (por ejemplo constantes o tipos de datos) es preciso seguir determinadas reglas referidas a la sintaxis. Declaración de Variables Una variable es un identificador definido por el usuario. En primer lugar se representa la palabra reservada VAR de la declaración de variable. el compilador comunica el mensaje de error correspondiente. Esta función es necesaria para permitir al compilador la identificación inequívoca de palabras clave e identificadores introducidos por el programador. en contraste. En caso de error el proceso de compilación se interrumpe inmediatamente. tipos de datos. las denominadas variables globales o publicas pueden declararse una sola vez. El contenido de una variable depende. que debe hacerse de forma que la utilización de la variable sea identificada en el programa. declarado antes del código del programa. En primer lugar hay que tener en cuenta que los nombres de la variables no pueden tener mas de 63 caracteres. En un programa. Var Valor1:integer. Si se salta esta regla. Por el contrario. y se almacena en la memoria del ordenador. se admite la declaración de la misma variable dentro de diversas rutinas. es decir. ya que el compilador solo toma en cuenta los primeros 63 caracteres. Este procedimiento es imprescindible para facilitar la lectura del programa y su comprensión. lo mismo que de los demás identificadores.¿Qué son los identificadores? Cualquier nombre que aparece en una aplicación Delphi y que no corresponde a palabras reservadas (denominadas palabras clave) es un identificador. A continuación es posible la definición e prácticamente cualquier variable. En general puede seguirse la regla de que los identificadores se declaran en código de programa antes de su utilización. Al declarar una variable hay que tener en cuenta la elección del nombre. del tipo de datos asignado. la declaración debe encontrarse al comienzo del módulo. procedimientos. por ejemplo en una UNIT. Las variables locales. No pueden contener diéresis ni caracteres como. deben empezar con una letra o con un trazo de subrayado.

las variables Valor1 y Valor2 son del tipo integer (números enteros comprendidos desde el −32768 y el 32767) y las variables Valor3 y Valor4. Valor2: integer. y al carácter de dos puntos le siguen generalmente la indicación del mismo tipo de datos aplicable a todas las variables dentro del bloque. Valor3. Si se asigna a una variable un valor que queda fuera del rango valido para el tipo en cuestión. Var Valor1. del tipo byte (numero comprendidos desde el 0 al 255). Var Valor1. 10 . Valor3:byte. cabe señalar que los valores susceptibles de admisión por las diferentes variables dependen del tipo de datos asignado a las variables en cuestión. ya que queda fuera del rango definido para el tipo de datos estándar byte. Valor3:=10. el compilador proporciona inmediatamente un mensaje de error. Valor4:byte. Char1: char. en un bloque de variables. separándolas por una coma. Valor4: byte. En este caso solo son validos los valores comprendidos desde 0 hasta 255. Valor2:= 20000. Antes de dar un ejemplo concreto. El resultado es el siguiente. A continuación se muestra un ejemplo de asignación de valores a variables de diferentes tipos. Para simplificar la declaración es posible agrupar las variables del mismo tipo. El carácter de dos puntos solo se coloca tras la ultima denominación de variable. Boolean1: boolean. Así por ejemplo a la variable Valor4 no se le puede asignar el valor 1000. procede analizar la forma en que estas actúan en el programa y el funcionamiento de cada asignación de valor. Asignación de valores a Variables Una vez conocida la forma en que se declaran las variables en los programas Delphi. Valor2: integer. Begin Valor1:= 1000. Valor3. En el ejemplo anterior. String1: string.Valor2:integer. Valor4: byte.

End. Las variables de los tipos previamente definidos pueden generarse directamente. ocupan 6 bytes cada uno en la memoria Números de coma flotante de 7 a 8 decimales significativos. Además. Como puede verse. Char1:= `c'. la asignación siempre se realiza con la ayuda de los caracteres :=. en cada línea solamente debe escribirse una instrucción. solo es posible si está activada la opción de compilador {$N+}.Valor4:=40. solo es posible si está activada la opción de compilador {$N+}. en Object Pascal. 16 bits (ocupan 2 bytes cada uno en la memoria) Números enteros comprendidos entre −2147483647 y 2147483647 32 bits (ocupan 4 bytes cada uno en la memoria) Números negativos y positivos enteros comprendidos entre −128 y 127. 8 bits (ocupa 1 byte cada uno en la memoria) Números de coma flotante de 11 a 12 decimales significativos (delante y detrás de la coma). solo es posible si está activada la opción de compilador {$N+}. 16 bits (ocupan 2 bytes cada uno en la memoria) Números enteros positivos comprendidos entre 0 y 255. ocupan 10 bytes Byte Word LongInt ShortInt Real Single Double Extended 11 . 8 bits (ocupa 1 byte cada uno en la memoria) Números positivos comprendidos entre 0 y 65535. A la izquierda de la asignación aparece la variable. y a la derecha. Tipos de Datos Estándar A continuación se exponen en forma de tabla los tipos de datos disponibles en condiciones estándar en el lenguaje Object Pascal. Números enteros comprendidos entre Integer −32768 y 32767. Para aumentar la legibilidad del código fuente es recomendable emplear comillas como en el ejemplo anterior. ocupan 4 bytes cada uno en la memoria Números de coma flotante de 15 a 16 cifras delante y detrás de la coma. el valor asignado a la variable en cuestión. Boolean1:= true. ocupan 8 bytes cada uno en la memoria Números de coma flotante de 19 a 20 cifras delante y detrás de la coma. Sring1:= `esto es una cadena de caracteres'. La terminación se realiza con un carácter de punto y coma.

[mbOK]. MessageDig (`Este cuadro de mensaje aparece siempre'. [mbOK]. el código de programa se bifurca tras al palabra clave THEN. y de iteración. cuyas variables pueden tomar los valores True (verdadero) o False (falso) Las instrucciones se cuentan entre los elementos más importantes del código de programa. Existen instrucciones de bifurcación. mtinformation. es decir. mtinformation. mtinformation. A continuación sigue la condición. sin enlace con un tipo concreto(denominados punteros sin tipo) Tipo de Datos Booleano. [mbOK]. 0) 12 . el cuadro de mensaje aparece con el texto Suma es 100. Si la expresión es falsa. A continuación se describen detalladamente cinco de estas instrucciones. If Suma = 100 then MessageDig (`Suma es 100'. 0). literalmente. El bloque ELSE es opcional y no tiene por que aparecer siempre. WHILE y FOR. If Suma = 100 then MessageDig (`Suma es 100'. que se emplean en todos los casos de escritura de aplicaciones Delphi. Si en el ejemplo anterior. Cuando existe. y el valor booleano de la condición es False. solo es posible si está activada la opción de compilador {$N+}. el código de programa se ejecuta a continuación del bloque THEN. Controlan. una expresión. como REPEAT. de cuyo resultado depende el camino de ejecución del programa.Comp String Char Pchar Pointer Boolean Instrucciones más Importantes cada uno en la memoria Números de coma flotante de 19 a 20 cifras delante y detrás de la coma. 0) Else MessageDig (`Suma no es 100'. mtinformation. ocupan 8 bytes cada uno en la memoria Secuencia de símbolos con una longitud máxima de 255 caracteres ASCII* Caracteres ASCII simples Puntero a una cadena terminada en carácter nulo Punteros que pueden apuntar a cualquier estructura de datos. la ventana de mensajes aparece con el texto Suma no es 100. como IF y CASE. 0). Si el valor es distinto de 100. la variable Suma no tiene el valor 100. La instrucción IF Esta condición se genera con la palabra reservada IF. Para comprender mejor la instrucción IF esta construcción se denomina si −entonces −sino− instrucción". se ejecuta el código de programa que aparece a continuación del bloque THEN o tras la palabra clave ELSE. Si la condición es verdadera. la ejecución del programa. [mbOK].

pueden estar formados por varias instrucciones. [mbOK]. La valoración se interrumpe cuando el resultado persiste. cuando el valor de la expresión completa ya no puede variar. Mult := suma * 100. End Else Begin MessageDig (`Suma no es 100'. [mbOK]. En este caso. Si dicha opción no está activada. mtinformation. el resultado de la condición IF es True cuando se cumple una de las dos condiciones. 0). End. La condición de la instrucción IF puede estar formada por varias condiciones parciales enlazadas entre si mediante los operadores booleanos tales como AND (tratamiento Y) u OR (tratamiento O). Tanto el bloque THEN como el ELSE.Independientemente de lo expuesto. Cuando esta activada la opción {$B+} del compilador. en el presente ejemplo. Para que se ejecuten todas las instrucciones. deben estar encerradas con una instrucción BEGIN END. mtinformation. mtinformation. 0) Else MessageDig (`Suma no es 100 ni 200'. nunca podrá ser True. La instrucción CASE 13 . [mbOK]. 0). Además. Ello es debido a que una variable como la variable suma utilizada en el ejemplo. If Suma = 100 then Begin MessageDig (`Suma es 100'. el valor de la expresión en conjunto de la instrucción IF. Ello es debido a que la instrucción no forma parte del bloque IF. Esto ocurre porque se utiliza el operador OR para el tratamiento de las condiciones. Si en lugar de dicho operador se aplica el operado AND. siempre tiene que tener un único valor. 0). en una condición IF. tanto si la suma es 100 como si no. en el que las expresiones parciales (condiciones parciales) van valorándose secuencialmente conformemente aparecen. mtinformation. A continuación se presenta una condición IF formada por varias condiciones parciales: If (suma = 100) or (suma = 200) then MessageDig (`Suma es 100 o 200'. el compilador genera un código de valoración conforme al procedimiento denominado parcial. el cuadro de mensaje aparece con el texto Este cuadro de mensaje aparece siempre. Mult := suma * 200. pude utilizarse completamente la negación NOT. este valora totalmente las expresiones. Dos valores de la misma variable simultáneamente son imposibles en la regla de la lógica. es decir. [mbOK].

End. [mbOK]. A esta información le sigue la palabra reservada OF. Case suma of 100: MessageDig (`Suma es 100'. mtinformation. 0). [mbOK]. de forma análoga a como ocurre con una condición IF. mtinformation. ni 500'+ 14 . mtinformation. 500: MessageDig (`Suma es 500'. 500: MessageDig (`Suma es 500'. 0). [mbOK]. mtinformation. 0). que contiene las condiciones y las correspondientes ramificaciones código. mtinformation. 0). [mbOK]. A continuación de la palabra CASE se expresa la referencia de las condiciones siguientes. mtinformation. 200: MessageDig (`Suma es 200'. [mbOK]. 1000: MessageDig (`Suma es 1000'. ni 200. 200: MessageDig (`Suma es 200'. Cuando se cumple una de las condiciones expuestas en el bloque CASE.A través de la instrucción CASE pueden establecerse varias condiciones en un bloque. [mbOK]. 0) Else MessageDig (`Suma no es 100. 0). 1000: MessageDig (`Suma es 1000'. [mbOK]. En la línea siguiente comienza el bloque. 0). en un bloque CASE también es posible una sección ELSE. el código de programa que aparece a continuación de la condición en cuestión se ramifica. 0). mtinformation. Opcionalmente. El final del bloque se reconoce por el compilador gracias a la palabra clave END. Case suma of 100: MessageDig (`Suma es 100'. [mbOK]. mtinformation.

mtinformation. a fin de reducir la longitud del código fuente. mtinformation. ni 500'+ `ni tampoco 1000'. si durante el tratamiento de un programa. mtinformation. mtinformation. [mbOK]. [mbOK]. 0) Else MessageDig (`Suma no es 100. Por lo tanto definen una condición única. La instrucción CASE debe utilizarse sobre todo cuando se necesitan varias condiciones y ramificaciones. 15 . [mbOK]. las condiciones del bloque CASE del ejemplo anterior se han convertido a IF. En el siguiente ejemplo se muestra como funciona esta condición. como es el caso del ejemplo anterior. mtinformation. mtinformation. 0). El compilador proporciona un mensaje de error. [mbOK]. Para aclarar estas condiciones. La instrucción CASE no siempre es posible. Si varias condiciones conducen a la misma ramificación de código. ni 200. partiendo de un tipo String. 0). en el bloque CASE pueden enumerarse separadas por comas. MessageDig (`Suma es 1000'. Sin embargo es preferible a la instrucción IF cuando el tipo de variables a las que se refiere el bloque CASE son Integer o del tipo subrango. aparece la creación de un bloque CASE con una variable. Como puede comprobarse. If suma = 100 then MessageDig (`Suma es 100'. la estructura del código del bloque de condiciones preparado con ayuda de la instrucción CASE es mas claro que el correspondiente a la estructura en base a condiciones IF del ejemplo anterior. 0) Else If suma = 1000 then. [mbOK]. 0) Else If suma = 200 then MessageDig (`Suma es 200'. [mbOK]. Es mucho más eficaz que la condición con varias instrucciones IF. End. Tampoco es posible la instrucción CASE cuando el tipo de variables de referencia es estructurado (por ejemplo array o record). por ejemplo.`ni tampoco 1000'. Un inconveniente de las condiciones en el bloque CASE es que no cabe la posibilidad de enlazar condiciones entre sí a base de operadores booleanos tales como AND y OR. 0) Else If suma = 500 then MessageDig (`Suma es 500'.

de forma que el listado de la unidad en conjunto tenga la forma siguiente: unit Unit2. se compone de varias condiciones parciales. se ha de insertar en el proyecto una nueva UNIT generada al pulsar el botón del ratón en la opción NEW UNIT (menú File).. Ahora se describen las instrucciones de bucle que se utilizan para ejecuciones repetidas de partes del código de programa. Suma := 0. puede realizarse primero un nuevo proyecto en Delphi. A continuación se describe la instrucción REPEAT en base a un ejemplo concreto. Repeat Suma := Suma + 1. A continuación. [mbOK].. 200. Una vez realizadas las operaciones descritas. En la sección de implementación se escribe el código de la rutina en cuestión. hasta que se cumple una condición de interrupción que aparece a continuación de la palabra clave UNTIL. mtinformation. ni 500'+ `ni tampoco 1000'. Antes del bucle REPEAT. Cada vez que se cumpla la condición de bucle se aumenta en 1 el valor de suma. se ha de insertar la instrucción USES en la que se indica que debe utilizarse la UNIT estándar WinCrt. 1000: MessageDig (`Suma es 100. 500 o 1000'. 0). mtinformation. 0) Else MessageDig (`Suma no es 100. lo que puede realizarse de una forma de una forma muy sencilla con el operador +. UNTIL se establece en 0 el valor de la variable suma. La condición de interrupción es una expresión booleana. y de forma análoga a como ocurre con la condición IF. que es la condición de término de bucle. ni 200. El bloque REPEAT− UNTIL se repite una y otra vez hasta que la variable suma alcanza el valor 100. 200. Esta condición es necesaria para la visualización de texto por medio de una de las rutinas estándar WRITE o WRITELN.Case suma of 100. Until Suma = 100. 16 . En el código fuente del nuevo archivo UNIT que contiene el nombre de UNIT2. [mbOK]. Para probar de inmediato en la practica la instrucción REPEAT. La condición de interrupción se cumple cuando el resultado de expresión total es True. se declara en la sección interface de la UNIT el procedimiento ShowRepeatLoop. La instrucción REPEAT En los apartados anteriores se han visto las instrucciones IF y CASE para generar condiciones en un programa Delphi. 500. En primer lugar se describe detalladamente la instrucción REPEAT. Con la instrucción REPEAT se crean repeticiones de instrucciones en el programa Delphi.

Una vez escrito el código fuente de la unidad. Begin ShowRepeatLoop End. tal y como se muestra en el listado siguiente: Procedure Tform1. Var Suma : integer. Antes de ejecutar el programa (pulsando la tecla F9). Van apareciendo los valores de la variable suma creados por la rutina ShowRepeatLoop al llamar al procedimiento estándar WRITELN.interface uses WinCrt Procedure ShowRepeatLoop. se inserta la entrada UNIT2. en el formulario que se genera al realizar un proyecto nuevo.Button1Click (sender: TObject). en la instrucción USES del archivo UNIT. Repeat Suma := suma + 1. Until suma = 100. Writeln(suma). de forma que el compilador pueda enlazar esta UNIT con la del formulario. enlazado con el formulario donde se encuentra el botón Button1. End. La instrucción WHILE 17 .. debido a que la rutina ShowRepeatLoop es desconocida. Esta opción es necesaria para que no se produzcan mensajes de error al compilar el proyecto. se ha de insertar un botón y programar la rutina Tform. Tras ejecutar el programa y pulsar el botón del ratón sobre el botón insertado en el formulario en el modo de desarrollo. UNTIL.Button1Click. End.. se abre una ventana y se muestran en ella los diferentes pasos de la ejecución del bucle REPEAT. Begin Suma := 0.

la UNIT UNIT2 se amplía con un nuevo procedimiento que recibe el nombre de ShowWhileLoop. recurriendo a la suma que se ha utilizado en el apartado anterior. y la ejecución del programa continúa con la siguiente instrucción. Cuando el resultado de la expresión completa es False. DO se saltan. En primer lugar conviene decir que la diferencia entre las instrucciones REPEAT y WHILE radica en que la condición de la instrucción WHILE. directamente después del bloque. De forma análoga a como ocurre con la condición de interrupción de la instrucción REPEAT. DO se ejecuta mientras la citada condición es True. se presenta un ejemplo de código que facilite la comprensión de esta instrucción.. se tiene criterio de interrupción de la ejecución reiterada del código. Sin embargo en la instrucción REPEAT. Begin Suma := 0. Para comprender mejor la instrucción WHILE. se trata de las instrucciones WHILE y FOR. Procedure ShowWhileLoop. De forma análoga a como ocurre con el procedimiento ShowRepeatLoop. En este caso. la condición para la ejecución del bucle puede estar formada por varias condiciones parciales que se someten a tratamiento lógico de cualquier tipo con la ayuda de los operadores AND y OR. la condición en el bucle WHILE− DO debe ser modificada ligeramente. para presentar el texto en pantalla se utiliza en esta rutina la instrucción estándar Writeln. El bucle WHILE. Conviene no olvidar que el valor de suma antes de la instrucción WHILE de ponerse a 0.. Como consecuencia de las propiedades de la instrucción WHILE. el lenguaje Object Pascal de Delphi tiene otras dos funciones mas de bucle. también en la instrucción WHILE. Para que la ejecución del bucle WHILE−DO en el programa pueda seguirse paso a paso. la ramificación hacia el código de programa tiene lugar dentro de la instrucción WHILE − DO. DO se expresa al principio. se trata de una condición de interrupción y la condición de la instrucción WHILE puede tomarse como condición para la ejecución del bucle.Aparte de la instrucción REPEAT. En este apartado se analizan las propiedades de la WHILE − DO. por lo que es necesario modificar la formulación de la condición... En estos casos. While suma < 100 do Suma := suma + 1. El código de programa del bloque WHILE−DO solo puede ejecutarse cuando el valor de suma sea inferior a 100. La condición se cumple cuando el resultado de la expresión completa es True. las instrucciones en el bloque WHILE. directamente después de la palabra clave WHILE. While suma < 100 do Begin 18 . en comparación con la condición del bucle REPEAT−UNTIL. Suma := 0.. Var Suma : integer..

Button2Click. Si se ha observado detenidamente la salida de texto anterior. en el caso que se utilicen componentes Button. Obsérvese los valores que se muestran en la ventana y. en la primera ventana. En total. partiendo del valor inicial. en el bucle ShowWhileLoop pueden ejecutarse dos instrucciones. La instrucción FOR introduce la denominada iteración a intervalos. la rutina ShowWhileLoop (instrucción While). llamar al procedimiento ShowWhileLoop.. Para comprobar las diferencias entre la ejecución de las rutinas ShowRepeatLoop y ShowWhileLoop. DO. Una vez arrancado el programa. la variable numérica que aumenta (incremento) o disminuye (decremento) en 1 con cada repetición del código.Suma := suma + 1... por ejemplo del tipo Integer o Byte. Al pulsar el botón del ratón sobre el control activo. y el final. DO se define exactamente con anterioridad cuantas veces se repetirá la ejecución del código. Until). Pulsando dos veces el botón del ratón sobre la columna de valores del evento OnClick (en el inspector de objetos) se genera una rutina de tratamiento para el evento.. End. provista del nombre Tform1. La instrucción FOR Hasta aquí se ha hablado de dos tipos de bucles.. basta con escribir a continuación de la denominación ARRAY.100] of integer. que se ejecutan cuando la condición definida es True (bucle While. que se ejecuta hasta que el contador alcanza un determinado valor. 19 . En el presente apartado se presenta el tercer tipo de bucle. por lo que el principio del bloque completo debe marcarse con la palabra reservada Begin.. DO. ciérrese la ventana y púlsese el botón del ratón sobre el botón Button2 en el formulario para llamar a la segunda rutina. entre corchetes. End. DO es imprescindible declarar previamente una variable numérica. Writeln (suma). En la instrucción FOR se indica tanto el valor inicial del contador como el final. Pero antes de realizar estas operaciones no hay que olvidarse de seleccionar Button2 pulsando el botón de ratón.. Para la implementación de un bucle FOR. El empleo de bucles es particularmente recomendable para cumplimentar los campos de las variables de matriz con valores crecientes o decrecientes. De esta forma se define la cantidad de repeticiones para el código del bucle FOR. Var Array : array[1. a pesar de que utilizan diferentes tipos de bucles. puede recurrirse a insertar un segundo botón en le formulario del programa. Entre los valores inicial y final del contador debe aparecer la palabra clave TO (incremento del contador o la DOWNTO (decremento del contador). en el que no se necesita ninguna condición para la interrupción o para la ejecución del código del programa. una vez terminada la salida de texto. Para acceder a todos los campos de matriz.. o para ponerlos a 0. se abrirá igualmente una ventana y se mostraran los valores actuales que la variable suma va tomando durante la ejecución del bucle. El correspondiente control toma automáticamente el nombre Button2. con lo que llamara a la rutina ShowRepeatLoop (instrucción Repeat).. podrá comprobar que ambas rutinas ShowRepeatLoop y ShowWhileLoop hacen lo mismo.... En los bucles FOR. denominado FOR. do) o False (Bucle Repeat. se ha de pulsar una vez el botón del ratón sobre el botón Button1. En la rutina de tratamiento generada por Delphi. con End..

count3] := 0.. Count3: integer.5] of integer.. En el presente ejemplo se recorren todos los campos de la matriz de 1 a 100 y a cada campo se le asigna su índice. End. DO se utiliza la instrucción estándar EXIT.100. Begin For count1 := 1 to 10 do For count2 := 1 to 100 do For count3 := 1 to 5 do Array2[count1.. Count1.. 1. para esta finalidad se recurre a la condición IF. El anidamiento es necesario. por ejemplo... Count3: integer. DO también pueden anidarse. Además es preciso cambiar entre si los valores de comienzo y de final del contador. En el ejemplo anterior se recorren todos los campos de la matriz tridimensional y se pone 0 a su valor. Coount2. En los bucles FOR. End. Begin For count : = 1 to 100 do Array1[count] := count.. For count := 100 downto 1 do Array1[count] := count. Var Array2 : array[1. count2. pero dado que no está previsto inicialmente. 20 .. Para recorrer los campos de matriz en sentido inverso es preciso cambiar la palabra clave TO de la instrucción FOR por DOWNTO. Var Arrat3:array[10.Count : integer.1000] of integer. Por lo demás para cada bucle aisladamente considerado debe utilizarse una variable contadora por separado. 1. DO también es posible definir criterios de interrupción.10. Para abandonar un bucle FOR.. cuando es necesario rellenar una matriz multidimensional.. Los bucles FOR.

según los datos lo Borland). a ser más eficientes que los correspondientes controles VBXs ya que forman parte del propio programa ejecutable final y no de una biblioteca dinámica. Esto quiere decir que las aplicaciones Delphi son mucho más rápidas que las equivalentes escritas en Visual Basic (de 10 a 20 veces. o los nuevos OCX en la versión de 32. duplica inevitablemente parte del entorno de tiempo de ejecución del sistema en que fue programado. por lo general.Begin For count3 := 10 to 1000 do Begin Array3[count3] := 0 If count3 = 200 then Exit. • En Delphi podemos programar directamente los componentes visuales. • En cualquiera de las versiones de Delphi podemos programar DLLs. Visual Basic no permite programar controles VBX ni OCX. el polimorfismo y la herencia. lo que produce que podemos beneficiarnos de características tan importantes como son el encapsulamiento. ya sean los obsoletos VBX para la versión de 16 bits. End. Un control definido en una DLL. Glosario de Términos • API : Aplication Programing Interface (Interfaz de programación de aplicaciones) 21 . por lo que la aplicación debe realizarse siempre que se conozcan los números de repeticiones y se desee ejecutar el código con rapidez. • Los componentes visuales de Delphi tienden. En cambio. • Delphi utiliza Object Pascal desde sus primeras versiones. Diferencias Entre Visual Basic y Delphi • Delphi produce aplicaciones en código máquina. ocupa más memoria y provoca un mayor intercambio de páginas de memoria virtual con el disco. por ejemplo. para poder comunicarnos con otros lenguajes de programación. Un programador de Delphi debe ser consciente de la gran rapidez de los bucles. • Delphi puede programar tanto controladores como servidores de automatización. un lenguaje Orientado a Objetos. Utilizando Delphi incluso podemos crear nuevos controles que hereden características de controles ya existentes. • Por último. los componentes visuales de Visual Basic pueden utilizarse desde Delphi. {abandonar el bucle} End. mientras que Visual Basic produce código para ser interpretado. Pero también significa que nos ahorramos la instalación del intérprete que necesitan los programas de Visual Basic.

0 ya 22 . • CASE − TOOLS : Computer Aided Software Engineering (desarrollo de software asistido por ordenador) • ODBC : Open Database Conectivity. (ya nos veremos pronto las caras) Los autores. es un formato de archivo que no contiene formato de texto. Extra gracias : Al señor Luis Galdames Bert y al señor Jorge Fuentes por su gran ayuda. hermanos. en fin todos aquellos que en poca o gran medida han hecho que nuestro sueño de apoco se convierta en realidad. Es una interfaz de programación que permite a las aplicaciones tener acceso a datos en sistemas de administración de bases de datos que utilizan el SQL como estándar de acceso a datos. • El Gran Libro de Delphi. por su inspiración. Dedicatorias y Consideraciones Finales Este presente trabajo se lo queremos dedicar a toda la gente que hay tras nosotros. Constituye un estándar de lenguaje de uso general. partiendo primeramente por nuestras familias quienes gracias a su gran esfuerzo nos han ayudado en este difícil camino. Los archivos ASCII se usan universalmente para intercambiar información entre equipos. al gato amarillo y al Félix. amigos. por lo que se puede transferir en distintos sistemas operativos y programas. A todos ustedes quienes siempre recordaremos. Julio de 2001. Bibliografía Para la realización de este trabajo se utilizaron los siguientes textos como referencia. nuestras(os) novias(os). para consultar y modificar datos administrados por servidores especiales de bases de datos como Oracle. tíos.• ASCII : American Standard Code for Information Interchange (código americano estándar de intercambio de información). Autores : Arthur Burda y Günther Färber Editorial : Marcombo/Data Becker • Programación Orientada a Objetos Autor : Luis Joyanes Aguilar Editorial : McGraw−Hill • Aprenda Visual Basic 6. Informix o Adabas). creyendo en nosotros y apoyándonos. a nuestros abuelos. • VCL : Visual Component Library (biblioteca de componentes visuales. • OWL : Object Windows Library (librería de objetos de Windows) • SQL : Structured Query Language (lenguaje de consultas estructurado). Sybase. my lovin' guitar. apoyo y conocimientos entregados sin fines de lucro alguno.

Autor : Michael Halvorson Editorial : McGraw−Hill • Programación con Delphi 4 Autor : Francisco Charte Ojeda Editorial : Anaya Multimedia Conclusión 32 Vehículo Ciclomotor Bicicleta Automóvil Montaña Paseo Camión Autobús Coche Competición Deportivo Turismo Berlina Familiar 23 .