Curso Delphi. Lección 06B  

Send By: Ariel Bustamante
Web : N.A.
Email: N.A.
Date: 30/12/02

Tip accessed 877 times

 



El escritorio de Delphi


Realmente esto debería haber formado parte de nuestra primer lección, pero la dinámica que intentamos darle al curso nos llevó a postergar el diseño del ámbito de trabajo; el escritorio de Delphi

Vamos al menú de Delphi. Project/Options pestaña Compiler.

Aquí conviene marcar todas las casillas excepto Complete boolean eval (Evaluación Lógica Completa), esta se la dejamos para los superprofesionales que crean proyectos muy afinados, a nosotros nos volvería locos el compilador
si la activáramos. Si la dejamos sin marcar el compilador procederá a ejecutar un atajo de la misma evaluación mucho más rápida.
Si Borland diseñó a Delphi tan práctico e intuitivo ¿para qué complicarnos la vida nosotros?.

En el resto de las pestañas conviene dejar todas las casillas como vienen por defecto.


Menú Tools/Environment Options pestaña Preferences.


Aquí conviene tener desactivada la casilla Show Compiler Progress por las razones antes apuntadas, es muy bonito pero enlentece la compilación.
Por otra parte la casilla Display Grid si la desactiváramos nos quitaría la rejilla de la Form (pruébala). Las ventanas Grid Size X y Grid Size
Y, nos permiten ajustar la separación de los puntos de la rejilla, por defecto es 6.

En el recuadro Autosave Options yo desactivaría las dos casillas, con ellas activadas al ejecutar el proyecto este salva todo al mismo tiempo que
ejecuta y si hubiéramos cometido un error de los gruesos podríamos perder un tiempo considerable tratando de dejar el proyecto como antes del error,
en cambio con las pestañas desactivadas el error ocurriría igual pero no quedaría guardado, eso sí tenemos que acordarnos nosotros
de ir guardando a medida que avanzamos en el diseño.

Menú Tools/Environment Options pestaña Palette


Aquí nos muestra una columna en la izquierda con todas las pestañas de la Paleta y a la derecha con los componentes de cada Pestaña, debajo
unos botones te permiten cambiarlos de posición, renombrarlos, moverlos arriba y abajo, borrarlos y agregar los borrados o un nuevo componente.


Menú Tools/Editor Options pestaña color


Aquí te permite configurar las diferentes fuentes de letra ( estilo y color) de la Unit, así la línea de error que te aparece en un fondo (BG = Background) granate

la puedes cambiar a otro color así como el color de texto de los //comentarios etc. Si navegas por la ventana Element, la ventana Color te va mostrando con
FG (Foreground) el color del texto y con BG el del fondo, clicas una de estas casillas y luego clicas el color que tu desees OK y acabado.


Mismo menú pestaña Display


Esta complementa a Color y aquí puedes cambiar el tipo de letra y su tamaño. Las demás casillas déjalas como vienen por defecto.


Menú Project/View Source.


Al clicar esta opción ha aparecido la Unidad Fuente del projecto. Abre el proyecto de la Lección 1 y clica esta opción ahora a la Unit
se le adjunta otra que en su pestaña lleva el nombre del proyecto, su primer párrafo hace referencia al nombre del programa que lo toma del
nombre del proyecto. Luego una clausula de uses donde declara a Forms y a la unidad Main cuyo código esta contenido en Main.pas entre llaves pone
el nombre de la Form asociada a esa Unit que no es otra que Form1. Indica la inicialización del programa, la creación de la Form y la ejecución
del mismo. Si hubiéramos puesto algún nombre a Title o hubiéramos creado un archivo de ayuda estos aparecerían antes de esta línea
final.




BASE DE DATOS


Desde los ochenta en adelante las bases de datos han cobrado un protagonismo importantísimo en los estamentos administrativos públicos y privados
de cualquier sociedad. Para cuando nos hallamos ido de este mundo nuestro nombre y demás datos personales habrán figurado al menos en quinientas
bases de datos. A los cinco minutos de nacidos ya figuramos por lo menos en una. Esto quiere decir que un entorno de programación de poco serviría
si no nos permite desarrollar programas con bases de datos. Delphi es una potentísima herramienta en este apartado, con él podemos desarrollar proyectos con
Paradox, Dbase, sistemas ODBC como Microsoft Acces e infinidad de tipos de tablas.

Una Tabla está conformada por una serie de campos prefijados donde el usuario introduce una serie de datos (registros) que luego pueden ser procesados
de infinidad de maneras. Una Base de Datos son por lo menos dos Tablas interconectadas entre sí que comparten la información introducida o extraída
de una o de otra. Delphi dispone de dos métodos para crear tablas, uno es el Menú Database/Form Wizard que nos va creando una Tabla paso a paso
según las opciones que vayamos señalando y otro es el Menú Tools/DataBase Desktop que directamente nos abre a Paradox otro producto de
Borland. La primera opción la puedes probar por tu cuenta una vez que hayas cogido un poco de conocimientos y ahora trabajaremos con la segunda -currando
por nosotros mismos-. Antes de empezar un último apunte: el proyecto que vas a diseñar solo puede ser ejecutado en un ordenador que tenga
instalado el BDE (Borland Database Enginner)
que es el motor que arranca las bases de datos, en el caso del PC donde tienes instalado Delphi , este ya te instaló el BDE. Para distribuir esta aplicación
a diferentes usuarios se ha de hacer con un instalador de aplicaciones como InstallShield de Borland, que viene con el paquete de Delphi 5 en adelante o
InnoSetUp un programa genial y de muy fácil uso freeware en Internet. Estos instaladores nos permiten instalar una serie de opciones aparte del exe
de nuestro programa.

Carpeta Lección 6 borramos el programilla anterior, abrimos Delphi New Application y guardamos el Project con el nombre de FindCar y la Unit con el
nombre de Main para hacer esto vamos a probar otra forma de guardar, vas a Menú File/Save All clicas allí y se abre la ventana para guardar la Unit una
vez que clicas guardar se abre la del proyecto y repites la operación. Pasa el WindowsState a Maximized y de Caption a la Form ponle FINDCAR. Que originales no?. Parece que va de coches. Menú Tools/DataBase Desktop y se abre el
diseñador de Tablas, en este Menú File/New/Table y nos preguntará si será una tabla Paradox7,

desplega esa ventana y observa la cantidad de tipos de tablas que puede diseñar, luego déjala en Paradox7 y clica OK. Ya está lista para definir
el campo 1, allí nos aparece el nombre que le vamos a dar, el tipo de campo que será (fecha, número, caracteres etc) y el tamaño
del mismo. Por ej: si el campo es para introducir un número de teléfono español y como aquí todos los números tienen nueve caracteres,
ese es el valor size que deberíamos poner y entonces al introducir el noveno número el foco saltaría de este campo al siguiente puesto
que este ya se ha completado, esto no valdría para un campo "provincia" porque aquí tendríamos que darle un size donde pudieran entrar
todos los nombres de provincia, ya un campo nombre o apellido lo calcularíamos a ojo sin exagerar porque cuanto más grande sea el valor size más
ancho será el campo y por consiguiente menos campos entrarán en el ancho de pantalla y nos obligará a navegar a derecha e izquierda mucho
más. La tabla que vamos a diseñar contendrá datos de coches así que el primer campo será Marca escríbelo y pica Intro
el foco se desplazrá a Type, presiona la barra de espaciado y se desplegarán todos los tipos posibles a introducir, con flecha abajo baja hasta Alpha (alfanumérico)
e Intro y ahora viene Size pongamos 12 si nos quedamos cortos o largos ya lo podremos corregir en el futuro y ahora al clicar Intro el foco se pasó
a Key. Aquí solo se puede designar un campo como campo Key (clave) y al designarlo estamos encargando a la tabla que se indexe por este campo, en
otras palabras que se ordene por este campo en este caso como solo va a contener letras se ordenaría alfabéticamente si tuviera números
lo haría correlativamente, para asignarle un Key bastaría con escribir un carácter cualquiera y este se transformará en *(asterisco),
pero este sistema tiene un problema; una vez que esta tabla la maneja Delphi jamás se puede repetir el texto introducido en el campo key y como vamos
a poner varios coches de la misma marca nos sería imposible, este sistema es ideal por ej: para un campo Número de Cliente donde no pueden repetirse
dichos números; atención, no escribas nada en Key ya indexaremos la tabla por nosotros mismos, Intro y ya salta al campo 2 , a continuación
el listado de todos los campos:



































FIELD NAME



TYPE



SIZE



Marca



A



12



Modelo



A



12



Año



N



  style='color:black'>



Color



A



9



Combustible



A



8



Ahora clicas Save As buscas la carpeta Leccion6 para guardarla y de nombre
le pones TablaCoches, vamos a la carpeta Lección6 y allí verermos
el nuevo archivo que acabamos de guardar TablaCoches.db, clica sobre ese icono
para abrirlo y verás la tabla diseñada.

En el entorno de trabajo tienes varios botones rápidos; por su orden
son: Cortar, Copiar, Pegar y Restructure (Restructurar), luego viene un navegador
para movernos arriba y abajo por la tabla y a continuación Field View
y Edit Data. Estos botones a excepción de Restructure de poco y nada
nos servirán puesto que nosotros los datos (registros) de la tabla los
vamos a manejar desde una aplicación Delphi. Ahora que observo con atención
la tabla veo que me he "olvidado" de un campo elemental para la descripción
de un coche y es el campo Tipo donde nos debe señalar si es una furgoneta,
un turismo etc. Así que cliquemos Restructure se abre la ventana de restructuración
con el foco en el primer campo de la tabla, pulsamos Intro hasta que el foco
supera todos los campos ya diseñados y nos sombrea un campo vacío
que no será otro que el campo 6, allí ponemos Tipo como nombre,
A como type y 12 como size. Acabado esto nos encontramos que el campo agregado
por lógica figura en último lugar y nosotros lo necesitamos ordenado
después del campo Marca (en segundo lugar). Bien, clica el ratón
sobre el número 6 y mantén la tecla izquierda del mismo presionada,
se sombrearán todos los valores del campo 6, siguiendo con la tecla presionada
arrastra el ratón hasta sobreponer el campo Tipo sobre el campo Modelo,
suelta la tecla del ratón y el campo Tipo habrá pasado a ser el
campo 2, el campo Modelo el 3 y así sucesivamente todos los demás
campos habrán cambiado su número, salvamos este cambio y ya tenemos
la tabla restructurada. (esta operación la podríamos repetir las
veces que nos haga falta). Ahora clica sobre Edit Data y se sombreará
el registro número 1 para que puedas introducirle datos. Vamos a entrarle
por lo menos 10 registros. Yo en el primer registro puse:

Fiat/Turismo/Punto/1994/Blanco/Gasolina así que ahora sigues tú
con lo que se ocurra siguiendo este ejemplo, repite al menos dos veces cada
registro, o sea, dos Ford, dos Blancos, dos Turismos, dos Furgonetas; porque
esto nos va a ser útil más adelante. Para pasar de un campo a
otro tienes dos opciones o clicas la tecla Tab o la Intro Una vez acabado esto
verás que no tienes ninguna opción para guardar los registros
introducidos esto es porque se guardan automáticamente una vez introducidos.
Ten cuidado (porque es vital para el futuro de nuestro proyecto) de que el campo
Color siempre figure en masculino, por más que sea una furgoneta pon
Blanco no Blanca y que el campo combustible sea solo Gasolina o Gas Oil. Acabados
los diez primeros registros caigo en la cuenta que me he "olvidado"
de otro campo y es el campo Ubicación dado que esta empresa tiene 3 sucursales.
Vamos a restructurar la tabla y agregamos el campo Ubicación del type
A y con un size de 10, salvamos y rellenamos los diez registros para este campo
poniendo Agencia 1, Agencia 2 o Agencia 3. Acabada la tabla, la cerramos y volvemos
a nuestro proyecto FindCar. Pestaña Data Access depositamos en la Form
un componente Table y un componente Data Source y de la Pestaña Data
Controls depositamos un componente DBGrid (Grilla).

Table es el componente (solo visible en fase de diseño) que nos cargará
nuestra tabla en el proyecto, Data Source se encargará de enlazar este
componente con el DBGrid para que nuestra tabla sea visible dentro de la grilla.
Al DBGrid ponle la Propiedad Align alTop y dale un Height de 540. El DBGrid
también tiene sus Propiedades Color y Font que no te recomiendo tocar
hasta no tener la tabla visible dentro de él, luego puedes modificarlas
a tu gusto. Seleccionamos el componente Table y vamos a la Propiedad/DataBaseName,
aquí vamos a usar un método para que Table encuentre nuestra tabla,
pero hay otro significativamente diferente. En la ventana DataBaseName escribe
la ruta donde se encuentra nuestra tabla que es C:\CursoQ3\Leccion6, si la ruta
está bien escrita al bajar por el Inspector y desplegar la ventana de
la Propiedad/TableName, encontraremos a TablaCoches.DB, si no aparecerá
un aviso diciendo que ese directorio está equivocado. Seleccionamos TablaCoches.DB
y subimos por el Inspector hasta la Propiedad/Active, allí cambiamos
el valor False por True , si True no se pasa automáticamente a False
es porque está todo bien hecho. Ya tenemos nuestra tabla cargada, ahora
vamos al componente DataSource desplegamos la Propiedad/DataSet y allí
encontraremos a Table1 que es el Componente Table al cual le hemos dejado su
nombre por defecto, ya tenemos la tabla cargada y el DataSource "apuntando"
a ella para "enviarla" a donde queramos, pues al DBGrid1 ya que no
hay otro. Selecciona el DBGrid y en su Propiedad/DataSource desplega la ventana
y encontrarás el DataSource1 que es nuestro DataSource, una vez seleccionado
el DataSource1 en esa ventana, te aparecerá la TablaCoches en el DBGrid.
Si todo ha ido bien guarda y ejecuta el proyecto, aunque hemos trabajado fuerte
tenemos muy poco, ahí está nuestra tabla pero no tenemos ningún
control diseñado para trabajar con ella, aunque sí podemos agregarle
registros nuevos, vamos a ponerle un par más, navega con la tecla Tab
hasta acabar de recorrer todos los registros y que la tabla se posicione en
uno vacío debajo del último escrito, allí pon un par de
coches más saltando de campo en campo con Tab.

Observarás que los números del campo Año que en fase de
diseño de la tabla te aparecían con ,00 ahora ya te aparecen con
números enteros. Volvamos a diseño y de DataControls cogemos un
DBNavigator y lo depositamos en la Form, le damos un Height y un Width a nuestro
gusto lo ubicamos centrado debajo de DBGrid y vamos a su Propiedad/DataSource
desplegamos la ventana y nos encontraremos con DataSource1 la dejamos señalada
y DBNavigator ya está conectado con nuestra tabla a través de
ese "puente" que es el DataSource. Ejecuta el proyecto y prueba sus
diferentes teclas. Las cuatro primeras teclas navegan arriba y abajo, primer
y último registro, la siguiente "+" agrega un registro en cualquier
sitio donde elija el usuario y el signo "-" que borra el registro
señalizado (sombreado) no sin antes preguntar puesto que los registros
borrados son irrecuperables. Las siguientes son editar, post, cancelar y refrescar.
En el DBNavigator tenemos una Propiedad/VisibleButtons que nos permite quitar
los botones que no sean de utilidad para nuestra aplicación. Desplega
esa ventana y eliminalos todos menos los seis primeros (por supuesto, pasando
a False la propiedad VisibleButtons a cada uno de los que quieras eliminar,
ya en fase de diseño los verás ir desapareciendo, ejecuta el programa
y prueba el DBNavigator. Vuelta a fase de diseño habrás comprobado
la gran utilidad de DBNavigator, sin escribir la más mínima línea
de código realiza una tarea bastante amplia, pero a los efectos estéticos
es bastante "feíto" y con solo verle avisa al usuario que está
frente a una aplicación diseñada por un programador un poco gandul,
así que fuera el DBNavigator, lo borramos de la Form y ahora vamos a
diseñar uno nosotros. Coloca ocho Buttons de la pestaña Standard.