09.05.2013 Views

Número 82: Trucos SSH - Linux Magazine

Número 82: Trucos SSH - Linux Magazine

Número 82: Trucos SSH - Linux Magazine

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DESARROLLO Lazarus<br />

separado nos ayuda a documentar el<br />

código en línea con FPDoc estándar.<br />

Lazarus también permite la refactorización<br />

renombrando designadores en el proyecto,<br />

extrayendo el código seleccionado<br />

en un nuevo procedimiento o invirtiendo<br />

las asignaciones (convirtiendo A := B; en<br />

B := A;). Además, el editor registra automáticamente<br />

los métodos abstractos que<br />

aún no hemos aplicado y crea un método<br />

vacío. Lo único que falta es un enlace a un<br />

sistema de control de versiones.<br />

Clásico Moderno<br />

Si ponemos un botón en un formulario en<br />

Lazarus, el entorno de desarrollo genera<br />

automáticamente un objeto del tipo TButton<br />

por detrás. La clase correspondiente<br />

aparece por cortesía de la biblioteca Lazarus<br />

Component Library, también conocida<br />

por sus siglas LCL. Esta es una biblioteca<br />

de clase normal que podemos usar independientemente<br />

de Lazarus con unidades<br />

y clases que crean la interfaz para nuestro<br />

programa Object Pascal.<br />

LCL no dibuja elementos individuales<br />

de la interfaz gráfica en la pantalla, sino<br />

Libre Comercio<br />

Lazarus enlaza estáticamente LCL a la<br />

aplicación Object Pascal. A pesar de<br />

ello, para permitir el desarrollo de<br />

programas comerciales, la biblioteca<br />

de clases está disponible bajo una<br />

licencia LGPL modificada. Desafortunadamente<br />

esto no es cierto para<br />

todas las unidades que contiene.<br />

Antes de usar un componente en una<br />

aplicación comercial, es una buena<br />

idea comprobar la licencia embebida<br />

en el código fuente del propio componente.<br />

Por cierto, Lazarus no tiene<br />

una licencia GPL.<br />

Figura 4: LCL funciona como una interfaz entre el programa<br />

Object Pascal y las bibliotecas de la interfaz de usuario para los<br />

sistemas operativos soportados.<br />

que para ello se basa en una biblioteca<br />

heredada del sistema. Los desarrolladores<br />

tienen que elegir qué biblioteca usar al<br />

compilar. Los usuarios de <strong>Linux</strong> pueden<br />

seleccionar entre Qt, Gtk+ o Gtk2 y<br />

soporte para el conjunto de herramientas<br />

Free Pascal GUI [2]. fpGUI actualmente<br />

está en desarrollo.<br />

LCL está disponible para otros sistemas<br />

operativos. Soporta las funciones del sistema<br />

necesarias directamente en Windows<br />

y Windows CE, y podemos elegir<br />

entre Cocoa y Carbon en Mac OS X. La<br />

Figura 4 muestra la estructura de LCL y<br />

cómo se relaciona con los componentes<br />

individuales.<br />

Transferencia de<br />

Conocimiento<br />

Gracias a LCL, podemos escribir de forma<br />

sencilla aplicaciones<br />

multiplataforma que<br />

solamente necesitaremos<br />

recompilar en el<br />

sistema operativo objetivo<br />

(escribir una vez,<br />

compilar en cualquier<br />

parte). Lazarus es en sí<br />

la prueba de lo bien que<br />

funciona en la práctica:<br />

el entorno de desarrollo<br />

se programó enteramente<br />

usando LCL, y<br />

nosotros podemos<br />

reconstruirlo rápidamente<br />

al vuelo, para<br />

32 <strong>Número</strong> <strong>82</strong> WWW.LINUX- MAGAZINE.ES<br />

Figura 5: Lazarus incluye numerosos ejemplos de programas, tales como este gestor de direc-<br />

ciones que actúa como un ejemplo de programación de base de datos. Los iconos en el área<br />

blanca de la ventana principal son los objetos conectores de la base de datos.<br />

usarlo con una biblioteca de interfaz gráfica<br />

diferente, seleccionando un elemento<br />

del menú.<br />

Los desarrolladores tienen que tener en<br />

cuenta dos pequeños problemas. Por un<br />

lado, un par de interfaces (p.ej, Qt) están<br />

aún oficialmente en beta, si bien son muy<br />

estables, y los desarrolladores las usan<br />

habitualmente en trabajos de producción.<br />

Por otro lado, LCL intenta seguir las directrices<br />

de la interfaz gráfica de usuario del<br />

sistema operativo de destino. Esto puede<br />

llevar a que los componentes actúen de<br />

manera distinta en las diferentes plataformas.<br />

Por ejemplo, Windows no nos permitirá<br />

escalar algunos diálogos con el ratón,<br />

sin embargo podemos hacerlo en X11.<br />

Además, los sistemas operativos manejan<br />

los atajos de teclado de manera diferente.<br />

La wiki de Lazarus [3] incluye algunas<br />

páginas con consejos sobre la programación<br />

multiplataforma para ayudar a los<br />

desarrolladores.<br />

LCL puede hacer más que dibujar ventanas<br />

de colores en la pantalla. Contiene,<br />

por ejemplo, clases para acceder de<br />

manera sencilla y rápida a bases de datos,<br />

incluyendo PostgreSQL, dBase, y MySQL.<br />

En Lazarus, podemos poner los componentes<br />

del conector de la base de datos en<br />

un formulario, como si de cualquier otro<br />

elemento de la interfaz gráfica se tratara.<br />

Los elementos aparecerán como iconos y<br />

en la aplicación final realizarán sus tareas<br />

de manera discreta, en segundo plano<br />

(Figura 5).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!