P. 1
Lazarus_

Lazarus_

|Views: 562|Likes:
Publicado porJosé de Paz
Manual introductorio sobre el uso de Lazarus
Manual introductorio sobre el uso de Lazarus

More info:

Published by: José de Paz on Jul 08, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/12/2014

pdf

text

original

Lazarus Free Pascal Compiler

Figura No. 1.

Licencia: GPL/LGPL Lazarus son las bibliotecas de clase para Free Pascal que emulan Delphi. Free Pascal es un compilador (L)GPL que se ejecuta en Linux, Win32, OS/2 68K y más. Free Pascal está diseñado para ser capaz de comprender y compilar la sintaxis de Delphi, que por supuesto es POO. Lazarus es la parte que falta del puzzle que te permitirá desarrollar programas al estilo Delphi en todas las plataformas especificadas. El IDE se convertirá en una herramienta RAD como Delphi. Según vaya creciendo Lazarus necesitaremos más desarrolladores. Official: http://sourceforge.net/projects/lazarus/ Tutorials: http://lazarus-ccr.sourceforge.net

Tutorial desarrollado por: Universidad Mariano Gálvez Facultad de Ingeniería en Sistemas 0908-01-10469 José de Paz jose.depaz@gmail.com Escuintla, Guatemala.

Lazarus IDE

Palete de Componentes

Inspector de objetos

Editor de codigo fuente

formularios

Mensajes del compilador

Figura No. 2. La IDE (Figura No. 2) de Lazarus esta distribuida por los siguientes componentes: 1. 2. 3. 4. 5. Paleta de componentes Inspector de objetos Editor de código fuente Formularios Mensajes del compilador

Primer Proyecto Para crear nuestro primer proyecto debemos ir a la barra de menús y seleccionar en Proyecto->Nuevo proyecto:

Figura No. 3. Luego, seleccionar en “Aplicación” y luego click en el botón “Crear”. (Figura No. 3)

Figura No. 4. Ahora, cuando Lazarus se inicia, carga un proyecto por default, en este caso estamos creando un nuevo proyecto, y hacemos click en el botón “No”. (Figura No. 4.). Automáticamente se crea un proyecto, el cuál contiene un formulario llamado “Form1”, el cual puede observarse en la ventana “Inspector de Objetos”. Ahora vamos a agregar un botón de comando (TButton, Figura No. 5.), para esto nos vamos a la paleta de componentes y nos situamos en la pestaña “Standard” y seleccionamos el componente; hay dos formas de agregarlo: 1. haciendo doble click sobre él 2. haciendo click sobre él y dibujarlo a nuestra medida en el formulario.

Figura No. 5.

Después de haber agregado el botón, vamos a modificarle la propiedad “Caption”, y le insertamos algo como esto “Presionar”, tener en cuenta que debemos tener seleccionado el botón y no el formulario.

Figura No. 6. Ahora vamos a codificar el evento “OnClick” del botón, haciendo doble click sobre él o bien seleccionando el evento desde el “Inspector de Proyectos”, en la pestaña “Eventos”. Haciendo esto, se mostrara la venta del “Editor de código fuente” y se creara un evento para el TButton

Figura No. 7. y agregamos la siguiente línea de código, tal como se muestra en la figura No. 7., listo presionamos la tecla “F9” para ejecutar el proyecto, o bien en la barra de menús “Ejecutar->Ejecutar”, luego de presionar el botón “Presionar”, debemos observar lo siguiente:

Figura No. 8. Terminando, debemos guardar nuestro proyecto y formulario, para estos nos vamos a la barra de menús y hacer click en “Proyecto->Guardar Proyecto”.

Conexión a base de datos

Lazarus dispone de componentes para conexión a base de datos, la cual encontramos en la pestaña “SQLdb” de la paleta de componentes. (Figura No. 9)

Figura No. 9. Tiene componentes de conexión a las siguientes base de datos: TIBConnection TODBCConnection TOracleConnection TMySQL40Connection TMySQL41Connection TMySQL50Connection TPQConnection (FireBird / Interbase) (conexión ODBC) (Oracle ) (MySQL Server 4.0) (MySQL Server 4.1) (MySQL Server 5.0) (PostgreSQL)

Para este ejemplo, utilizaremos MySQL Server 5.0, y la base de datos que trae por default llamada “test”, en la cual crearemos la tabla “emple” y le ingresaremos algunos valores (Figura No. 10).

Figura No. 10.

Ahora vamos a crear un proyecto, en el cual tendremos un formulario con un datagrid (TDBGrid), en él cuál mostraremos el contenido de la tabla llamada “emple”. Para esto necesitamos agregar los siguientes componentes al formulario (Figura No. 11): TMySQL50Connection TDatasource TSQLTransaction TDBGrid TSQLQuery

Figura No. 11 El componente “Datasource”, lo encontramos en la pestaña “Data Access”, y el componente “DBGrid” en la pestaña “Data Controls”; de paleta de componentes. Ahora, vamos a configurar algunas propiedades de los componentes para que podamos acceder a la BD y así mismo extraer los registros y mostrarlos en el TDBGrid. DatabaseName: test HostName: localhost User: root Password: <tu clave de acceso a la base de datos> Connected: True Transaction: SQLTransaction1 Database: Database: SQL: Transaction: Active: MySQL50Connection1 MySQL50Connection1 select * from emple; SQLTransaction1 True

En el caso de la propiedad SQL, debemos abrir el “Diálogo Editor de Strings” cuando estemos situados en la propiedad “SQL”, y luego agregar la consulta SQL y presionar el botón “Ok” DataSet: DataGrid1 DataSource: SQLQuery1 Datasource1

Al momento de cambiar la propiedad “DataSource” del componente “DBGrid1”, se mostrara el contenido de la consulta SQL, esto nos quiere decir que todo esta bien, y solo resta presionar “F9” para ejecutar el proyecto, o bien en la barra de menús “Ejecutar->Ejecutar”. (Figura No. 12)

Figura No. 12. Ahora, detenemos el proyecto y vamos a agregar un botón (Figura No. 13) al formulario y le modificamos la propiedad “Caption” por “Actualizar”, la función del mismo es para actualizar los registros en el DBGrid, y para probarlo, vamos a codificar el evento “OnClick” haciendo doble click sobre él, y le agregamos el siguiente código: (Figura No. 14)

Figura No. 13

Figura No. 14 ejecutamos la aplicación, luego insertamos un registro en la tabla emple (Figura No. 15), luego tendremos que presionar el botón para que actualice la información (Figura No. 16).

Figura No. 15.

Figura No. 16. Si insertamos un registro y luego presionamos el botón, tendríamos que ver el nuevo registro en el DBGrid. Insertar un registro desde el formulario Para llevar a cabo la inserción de registros desde el formulario, vamos a agregar los siguientes componentes: tres etiquetas (TLabel) y tres cuadros de texto (TEdit), estos componentes se encuentran en la pestaña “Standard” de la paleta de componentes, y los organizamos en el formulario (Figura No. 17)., a los TLabel, les cambiamos la propiedad “Caption” por la correspondiente (CODIGO, NOMBRE, APELLIDO), y a los TEdit les borramos la propiedad “Text” que trae por default.

Figura No. 17. Ahora, vamos a modificar el código del evento “OnClick” del botón “Actualizar”, para esto hacemos doble click sobre él y agregamos el siguiente código (Figura No. 18):

Figura No. 18.

Ahora vamos a ejecutar el proyecto, presionamos la tecla “F9” para ejecutar el proyecto, o bien en la barra de menús “Ejecutar->Ejecutar”, debemos observar lo siguiente (Figura No. 19):

Figura No. 19. Listo, insertaremos los siguientes valores (Figura No. 20). y después presionamos el botón “Actualizar”, y tendríamos que ver el registro en el DBGrid:

Figura No. 20. Ahora, debemos borrar el contenido de los cuadros de texto (TEdit), y mostrar un mensaje diciendo que el registro ha sido guardado, detenemos el proyecto y agregamos el siguiente código (Figura No. 21):

Figura No. 21

Validando la entrada de datos Debemos agregar un componente TSQLQuery y configurar las siguientes propiedades: Database: Transaction: MySQL50Connection1 SQLTransaction1

Ahora, lo que tenemos que validar es la entrada de datos en: Código = números mayores a cero y que no exista el registro en la base de datos Nombre = que sea mayor o igual a tres caracteres Apellido = que sea mayor o igual a tres caracteres Para la validación del código, vamos a convertir el contenido del Edit1 (Text) a entero y luego con un if, haremos la condición para ver si es mayor a cero; para la conversión (cast), vamos tomar en cuenta si se produce alguna excepción, utilizando Try --> Except:

Figura No. 21 Según la figura No. 21; vamos a crear una función llamada Entero, para esto nos vamos al Editor del código fuente y después de implementation agregamos el código según la figura. La función recibe como parámetro un String y nos devuelve un valor booleano; convierte el valor recibido a entero y luego condiciona si el valor es mayor a cero, devolviendo como resultado True si esto se cumple, y False si hay error de conversión o si el valor es menor a cero. Luego vamos a modificar el código del evento OnClick del botón Actualizar, quedando como en la figura No. 22; en donde el SQLQuery2 lo utilizamos para buscar el código a grabar, si existe el código, el valor de SQLQuery2.RecordCount será mayor a cero. También se define la variable código de tipo Boolean, la cual recibe el valor devuelto por la función Entero(Edit1.Text).

Figura No. 22 Ahora, con la entrada en NOMBRE y APELLIDO, vamos a utilizar las funciones: Length(texto) = devuelve la longitud del texto Trim(texto) = elimina los espacios en blanco de los extremos para esto creamos la función “LargoCadena”, que recibe como parámetros, el contenido de Edit1 y Edit2, y nos devuelve el nombre del campo que no cumple con el largo de cadena deseado, agregar la función, según la figura No. 23.

Figura No. 23

y también vamos a modificar el código del evento OnClick del botón Actualizar, quedando como en la figura No. 24:

Figura No. 24. Claro esta, que el código del evento los debemos segmentar, como por ejemplo: un procedimiento que ejecute la inserción y otro que limpie los cuadros de texto; esto porque mas adelante toca hacer un update y delete con los datos de la grilla y bueno mas de alguno dará su opinión constructiva al respecto.

Modificación y eliminación de registros Para la modificación y eliminación de registros, vamos a utilizar el mismo componente SQLQuery2; al cual le modificaremos la propiedad SQL.Add(), según sea el caso. Y también vamos a agregar dos botones de comando (TButton); uno para que haga la modificación y el otro para la eliminación, en los cuales se codificara el evento OnClick para su respectivo evento. Agregar los botones según la figura No. 25 y cambiarles la propiedad “caption” respectivamente:

Figura No. 25. Antes de pasar al código de los botones, vamos a hacer lo siguiente: al seleccionar un registro de la grilla, los campos del registro deben pasar a su respectivo componente (CODIGO, NOMBRE, APELLIDO), explicado así: al hacer click en la grilla, el evento encargado de hacer el trabajo sera el “OnCellClick”, para codificarlo, seleccionar el DBGrid1 y seleccionar el evento en la pestaña “Eventos”, del “Inspector de Objetos”, luego hacer doble click sobre él, según la figura No. 26.

Figura No. 26.

Luego, haciendo un recordatorio; sabemos que el origen de datos que se muestra en el DBGrid1 es el Datasource1, que este a su vez tiene al SQLQuery1 como conjunto de datos. Entonces la propiedad “Fields[]” del SQLQuery1, es la que se encarga de darnos la información respectiva. Codificar el evento “OnCellClick” del DBGrid1 según la figura No. 27.

Figura No. 27. Ahora ejecutamos el proyecto para probar (F9). ¡Algo muy importante es recordarse de guardar los cambios!. Seguido; para la modificación de un registro, solo debemos permitir la modificación de los campos NOMBRE y APELLIDO, entonces para hacer esta limitación, vamos a indisponer el campo CODIGO al momento del evento “OnCellClick” del DBGrid1, con solo agregar la siguiente línea al final del evento de la figura No. 27: Edit1.Enabled:=False; Entonces, el evento “OnClick” del botón “Modificar”, y quedaría según código de la figura No. 28:

Figura No. 28. Ahora es cuestión de hacer la respectiva prueba y veras que funciona, claro esta que se debe tener un procedimiento para borrar el contenido de los cuadros de texto (TEdit), y falta agregar la validación sobre la longitud de los mismos. Seguido; hacer doble click sobre el botón “Eliminar” y agregamos el siguiente código (Figura No. 29):

Figura No. 29.

Segmentando el código Como hice referencia anteriormente; hay lineas de código que se repiten, como por ejemplo: el borrado de los cuadros de texto, para llevar a cabo esto, vamos a programar un procedimiento que haga el trabajo, el cual se llamara “LimpiaTextos”. Los procedimientos a diferencia de las funciones, no devuelven ningún valor de retorno, simplemente hacen el trabajo y listo, y otra diferencia es que los procedimientos deben declararse como parte del formulario, los cuales pueden ser de uso privado o público (ámbito del procedimiento). Entonces, declaramos el procedimiento según la figura No. 30:

Figura No. 30. Seguido de la declaración, codificamos el procedimiento según la figura No. 31.

Figura No. 31. Ahora bien, sustituimos las lineas de código donde se borra el contenido de los cuadros de texto, y agregamos la línea de código donde se llama al procedimiento, tomar como referencia la figura No. 32.

Figura No. 32.

Conexión Global a base de datos Siguiendo con el acceso a la base de datos: si agregamos otro formulario en el cual ingresamos o visualizamos información; tendríamos que agregar los componentes: TMySQL50Connection, TSQLTransaction y TSQLQuery como mínimo. Esto crearía otra conexión y así sucesivamente si agregáramos mas formularios. Entonces lo lógico seria tener solo una. Para esto vamos a hacer lo siguiente: 1. Crear un formulario que contenga el menú de opciones. 2. Crear un formulario que contenga la única conexión. 3. Agregar a cada formulario la referencia al formulario de conexión a la base de datos. Formulario de menú de opciones Agregamos otro formulario al proyecto haciendo click en el icono respectivo según la figura No. 33 o bien en la opción “Archivo-->Nuevo Formulario” de la barra de menús:

Figura No. 33. Teniendo agregado el formulario, lo guardamos con el nombre “unit2”, y le agregamos el componente TMainMenu, según la figura No. 34., haciendo doble click sobre el icono.

Figura No. 34. Este componente es la barra de menús, luego hay que ingresarle las opciones correspondientes, para esto hacer click sobre él con el botón derecho y luego eligir la opción “Edit” ( se muestra como la figura No. 35).

Figura No. 35.

Bien, ahora cambiamos la propiedad “Caption” de este ítem y le ingresamos “Empleados”. Seguido agregamos otro ítem al cuál le ingresamos “Salir”: para este ítem debes hacer click con el botón derecho sobre él ítem “Empleados” y eligir la opción “Insertar Nuevo Elemento (después)”, según la figura No. 36.

Figura No. 36. Al final, después de insertar los ítems, nos debe quedar como la figura No. 37., y vamos a codificar el evento “OnClick” del ítem MenuItem1 (Empleados) haciendo doble click el evento en la pestaña “Eventos” del “Inspector de Objetos”.

Figura No. 37. Luego agregar el código correspondiente como la figura No. 39.; pero antes de esto agregar la referencia al formulario Empleados (unit1) como la figura No. 38, el cuál sera mostrado al elegir la opción “Empleados” de la barra de menús (MainMenu1):

Figura No. 38.

Figura No. 39.

Explicando aún mas: lo que estamos haciendo es tener un formulario que contenga el menú de opciones, entonces desde el menú vamos a crear el formulario Empleados (Form1); bien, para hacer esta operación, debemos tener la referencia a este; por ello es que agregamos la unidad (unit1) a la clausula “uses” (figura No. 38) del formulario principal que contiene el menú (Form2). Al tener la referencia, podemos hacer uso de todas las propiedades y métodos del formulario Empleados (Form1). Con respecto al código del evento “OnClick” del ítem 1 (Empleados), hace lo siguiente: busca si el componente no esta creado, si esto es verdadero entonces crea el formulario y lo muestra en forma Modal. ¡Recuerda grabar tu proyecto! Ahora, los formularios que se van agregando al proyecto, por default el IDE tiene habilitada la opción de crearlos automáticamente; para nuestro uso solo debe crearse el formulario que contiene el menú de opciones, ya que desde este crearemos los otros. Entonces hacer click en la opción “Proyecto” de la barra de menús y luego elegir la opción “Opciones del Proyecto”, seguido, ir a la pestaña “Formulario”, dejar solo el Form2 en Crear formularios automáticamente y el Form1 en Formularios disponibles, ver figura No. 40, luego hacer click en aceptar:

Figura No. 40. Bueno, hasta este punto, aún falta codificar el formulario Empleados y agregar el formulario donde haremos la conexión global a la base de datos. Seguimos, ahora hay que agregar otro formulario (¡ seguro que sera el Form3 y la unidad unit3 !) y guardarlo, hacer lo mismo como se explico para la figura No. 40. (Solo el Form2 debe estar en “Crear formularios automáticamente” y Form1 y Form3 en “Formularios disponibles”).

Formulario de conexión (Form3) Teniendo agregado el formulario, lo guardamos con el nombre “unit3”, y le agregamos los componentes: TMySQL50Connection y TSQLTransaction, según la figura No. 41, y le modificamos las siguientes propiedades:

Figura No. 41. DatabaseName: test HostName: localhost User: root Password: <tu clave de acceso a la base de datos> Connected: True Transaction: SQLTransaction1 Database: MySQL50Connection1

Ahora nos vamos al “Editor Lazarus de código fuente” del “Form2” agregamos la referencia al “Form3”, el cual es “unit3”, según la figura No. 42.

Figura No. 42. Luego, codificamos el evento “OnShow”(Figura No. 43.) del Form2, el cual se encargara de crear el formulario de conexión Form3, pero este formulario no estará visible, tomalo en cuenta.

Figura No. 43.

Ahora nos vamos al Form1, y eliminamos los componentes MySQL50Connection1 y TSQLTransaction1, haciendo esto, solo nos quedarían los componentes como se muestra en la figura No. 44 .

Figura No. 44. Anteriormente en tiempo de diseño se hizo la modificación de las propiedades de los componentes, ahora lo vamos a hacer en tiempo de ejecución, y solo lo aplicaremos para los componentes SQLQuery1 y SQLQuery2, en el evento “OnShow” del Form1, como se muestra en la figura No. 46. Pero antes de esto, cabe decir que para cada formulario que agreguemos de ahora en adelante, debemos agregar la referencia al formulario que contiene la conexión, en este caso agregar en la clausula “uses” la unidad “unit3”, como se muestra en la figura No. 45.

Figura No. 45. seguido vamos a codificar el evento “OnShow” del Form1 haciendo doble click sobre él en la pestaña “Eventos” del “Inspector de Objetos”, y agregar el código como se muestra en la figura No. 46.

Figura No. 46. y antes de que probemos el proyecto, hay que codificar el evento “OnClose” de este formulario, y hasta este punto ya sabes como llegar hasta el “Editor Lazarus del código fuente” para codificar los respectivos eventos; bien, codifica según la figura No. 47.

Figura No. 47. seguimos, también hay que codificar para que al momento de cerrar el formulario principal Form2, se cierre también el formulario de la conexión Form3, aunque no este visible, codificar el evento como en la figura No. 48.

Figura No. 48. y por fin; listo, guardar el proyecto y hacer la respectiva prueba. Solo hay algo que hay que mejorar, lo notaras al momento de cerrar el formulario principal. Estuve probando con otra forma de mejorar el tiempo en que se cierra de la aplicación, pero me da errores al ejecutar la aplicación desde el IDE, no así desde el explorador. Ya migrare las pruebas a PCLOS 2008.1 o los sabores de Ubuntu. PD: espero sus comentarios.

Tutorial actualizado al 24 de mayo de 2008.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->