
En la lección anterior, al abrir el IDE se carga un proyecto con ventana vacía por defecto, pero el proyecto aún no se ha guardado. Pulsa Ctrl + S para guardarlo en una carpeta.

Los archivos del proyecto tras guardar se muestran arriba.
Carpeta backup
Directorio de copias de seguridad automáticas, almacena versiones históricas de los archivos para recuperarlos en caso de borrado accidental o errores de edición.
project1.ico
Icono de la aplicación, se muestra en la ventana del programa y el acceso directo del escritorio tras compilar.
project1.lpi
Archivo de configuración del proyecto: almacena parámetros de compilación, unidades referenciadas, ajustes de plataforma, paquetes de dependencias y otras configuraciones globales del proyecto.
project1.lpr
Archivo fuente principal del proyecto, punto de arranque del programa que gestiona todas las unidades de formulario.
project1.lps
Registro de sesión del IDE: guarda los archivos abiertos la última vez, disposición de ventanas y posiciones del cursor; restaura automáticamente el entorno de edición al abrir el proyecto.
project1.res
Archivo de recursos compilado que empaqueta recursos integrados como iconos e información de versión.
unit1.lfm
Archivo de disposición del formulario, almacena tamaño de ventana, coordenadas, controles, títulos y demás ajustes de la interfaz visual.
unit1.pas
Archivo de lógica del formulario, aquí se escriben los eventos de botones, variables, funciones y lógica de negocio; se usa en conjunto con el archivo lfm correspondiente.
unit1.pas
Este es nuestro archivo fuente Pascal. Al igual que Delphi, Lazarus está basado en el lenguaje Pascal.
- Pascal: Lenguaje de programación base con sintaxis sencilla, dividido en Pascal estándar y Object Pascal (orientado a objetos).
- Delphi: IDE y compilador comercial de código cerrado, usa Object Pascal, solo nativo para Windows y cuenta con la librería de interfaz VCL.
- Lazarus: IDE multiplataforma gratuito y de código abierto basado en el compilador Free Pascal con la librería LCL, compatible con la sintaxis de Delphi y capaz de compilar programas para Windows, macOS, Linux y otros sistemas.
Resumen en una frase: Pascal es el lenguaje, Lazarus y Delphi son dos herramientas de desarrollo IDE distintas.
A continuación el código fuente del archivo pas:
unit Unit1; // Nombre de unidad Unit1
{$mode objfpc}{$H+} // Directiva de compilación: modo ObjFPC + soporte de cadenas largas
interface // Sección de interfaz: expone clases y variables externamente
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs; // Importa librerías base
type
TForm1 = class(TForm) // Clase de ventana principal que hereda de Form base
private // Miembros privados
public // Miembros públicos
end;
var
Form1: TForm1; // Instancia global de la ventana
implementation // Sección de implementación: aquí va toda la lógica
{$R *.lfm} // Vincula el archivo de disposición visual Unit1.lfm
end.Lenguaje del código: JavaScript (javascript)
*.lfm: Archivo de disposición de formularios de Lazarus, guarda los controles arrastrados, tamaño de ventana y propiedades;
interface declara elementos visibles externamente, implementation contiene la lógica de negocio;
La directiva integrada {$mode objfpc} activa el modo de compilación orientado a objetos estándar de Free Pascal;
Un proyecto vacío no tiene botones ni eventos, solo una estructura básica de ventana; puedes arrastrar controles directamente para añadir funcionalidades.
unit1.lfm
unit1.lfm es nuestro archivo de disposición del formulario
object Form1: TForm1
Left = 915
Height = 240
Top = 237
Width = 320
Caption = 'Form1'
LCLVersion = '4.8.0.0'
end
Lenguaje del código: JavaScript (javascript)
A continuación la explicación de cada parámetro:
object Form1: TForm1 // Define el objeto: instancia de ventana de tipo TForm1
Left = 915 // Distancia del borde izquierdo de la pantalla: 915 píxeles
Height = 240 // Altura de ventana: 240 píxeles
Top = 237 // Distancia del borde superior de la pantalla: 237 píxeles
Width = 320 // Ancho de ventana: 320 píxeles
Caption = ‘Form1’ // Texto de la barra de título de la ventana
LCLVersion = ‘4.8.0.0’ // Versión de la librería LCL que generó esta disposición
end // Fin de la definición del objeto ventana
project1.ico
Se trata de un archivo ico que actúa como icono de la aplicación

Se puede abrir con cualquier navegador web.
project1.lpi
Es un documento XML
Este archivo project1.lpi es el archivo de configuración central del proyecto, dividido en tres bloques principales:
1. ProjectOptions Ajustes básicos del proyecto
<Version Value="12"/>: Versión 12 del formato de archivo de configuración<PathDelim Value="\\"/>: Barra invertida separadora de rutas en Windows
General Ajustes generales del proyecto
SessionStorage=InProjectDir: Los registros de edición del IDE se guardan en la carpeta del proyectoTitle=project1: Nombre visible del proyectoScaled=True: La ventana se escala automáticamente para pantallas de alta resoluciónResourceType=res: Usa archivos res para almacenar iconosUseXPManifest=True: Habilita los estilos visuales modernos de WindowsDpiAware=True: El programa soporta pantallas de alto DPI para evitar interfaces borrosas
Icon=0: Usa el icono ico por defecto del proyecto
BuildModes
Solo existe el perfil de compilación por defecto Default (aquí se distinguen los modos Debug y Release)
RequiredPackages
Dependencia de la librería de componentes gráficos LCL (imprescindible para programas GUI)
Units Lista de archivos incluidos en el proyecto
project1.lpr: Punto de entrada principal del programaunit1.pas: Unidad de formulario vinculada a la clase Form1 correspondiente a la ventana visual
2. CompilerOptions Parámetros del compilador
- Nombre del ejecutable de salida:
project1 - Carpeta de archivos intermedios de compilación:
lib\CPU-sistema(ej: lib\x86_64-win64) <GraphicApplication=True>: Marca el programa como aplicación gráfica Windows, no consola
3. Debugging Configuración de depuración
Ignora excepciones específicas sin interrumpir la depuración: EAbort, errores al abrir archivos, errores de código de herramientas, etc.
project1.lpr
También usa sintaxis de Free Pascal (Object Pascal)
// Define este archivo como punto de entrada principal del proyecto
program project1;
// Directivas de compilación: habilita sintaxis OOP y soporte cadenas largas
{$mode objfpc}{$H+}
uses
// Importa librería de hilos para sistemas Unix (Linux/macOS)
{$IFDEF UNIX}
cthreads,
{$ENDIF}
// Importa librería de hilos para sistemas Amiga
{$IFDEF HASAMIGA}
athreads,
{$ENDIF}
Interfaces, // Capa gráfica multiplataforma base de LCL
Forms, // Marco base de formularios
Unit1 // Unidad de ventana personalizada principal
{ you can add units after this }; // Aquí puedes añadir nuevas unidades
{$R *.res} // Carga el archivo de recursos del proyecto (iconos, información de versión)
begin
RequireDerivedFormResource:=True; // Habilita la lectura de archivos de disposición lfm
Application.Scaled:=True; // Escala automática de interfaz para pantallas de alto DPI
{$PUSH}{$WARN 5044 OFF} // Desactiva temporalmente la advertencia de compilación 5044
Application.MainFormOnTaskbar:=True; // Muestra icono independiente de la ventana principal en la barra de tareas
{$POP} // Restaura la configuración original de advertencias
Application.Initialize; // Inicializa el entorno de ejecución de la app GUI
Application.CreateForm(TForm1, Form1); // Crea la instancia de la ventana principal Form1
Application.Run; // Inicia el bucle de mensajes de ventana a la espera de interacciones
end.Lenguaje del código: PHP (php)
Diferenciación:
- Archivos
.pasnormales: unidades (formularios o módulos funcionales) .lpr: Archivo Pascal principal del proyecto, punto de arranque del programa
project1.lps
Lazarus Project Session (archivo de sesión del proyecto), no es código Pascal
Es un registro de configuración exclusivo del IDE que guarda el estado de edición de la última vez que abriste el proyecto
Ejemplos: archivos de código/formulario abiertos, posición y tamaño de cada ventana, disposiciones divididas, posición del cursor, puntos de interrupción, historial de búsquedas, etc.
.lpr/.pas: Código fuente, obligatorios para compilar;
.lps: Archivo temporal solo para el IDE, no tiene efecto en la compilación.
project1.res
Archivo binario de recursos compilados
Se genera automáticamente a partir de project1.ico, información de versión del programa y manifiesto de interfaz de Windows durante la compilación
- Almacena el icono del software que se visualiza al hacer clic derecho en el ejecutable, en la barra de tareas y en accesos directos de escritorio tras compilar
- Guarda configuraciones de recursos del sistema como alto DPI y estilos visuales XP de Windows
Vinculación de compilación La directiva de código {$R *.res} integra este archivo de recursos dentro del exe final Características
- Se puede borrar sin problemas; se regenera automáticamente al volver a compilar el proyecto;
- Solo es necesario para programas GUI de Windows; las aplicaciones de consola no generan este archivo.
Al abrir el IDE veremos este panel

Este es nuestro diseñador visual de ventanas, puedes arrastrar todo tipo de controles sobre él. Su funcionamiento es básicamente igual a VB, WinForm, WPF, Delphi, Qt y otras herramientas de desarrollo por formularios.
Por ejemplo, arrastra un botón sobre el formulario

Vuelve a ejecutar el proyecto.

Aparecerá un botón en la ventana.

En la ventana Messages inferior puedes ver la carpeta donde se genera el exe
Dentro de la carpeta del proyecto aparecerá un archivo exe nuevo

Este exe es nuestro programa terminado, puedes enviarlo directamente a otros equipos para ejecutarlo, se trata de un ejecutable compilado sin dependencias externas.
Se ejecuta extremadamente rápido…