Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial Lazarus
Tutorial Lazarus
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
Palete de Componentes
Inspector Editor de
de objetos codigo
fuente
formularios
Mensajes del
compilador
Figura No. 2.
La IDE (Figura No. 2) de Lazarus esta distribuida por los siguientes componentes:
1. Paleta de componentes
2. Inspector de objetos
3. Editor de código fuente
4. Formularios
5. 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.
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:
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.
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. 11
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: MySQL50Connection1
Database: MySQL50Connection1
SQL: select * from emple;
Transaction: SQLTransaction1
Active: True
DataSet: SQLQuery1
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).
Si insertamos un registro y luego presionamos el botón, tendríamos que ver el nuevo registro en el DBGrid.
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.
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):
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:
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
Database: MySQL50Connection1
Transaction: SQLTransaction1
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
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:
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:
Antes de pasar al código de los botones, vamos a hacer los 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.
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:
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):
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).
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.