
Dans la leçon précédente, l’IDE s’ouvre par défaut sur un projet avec une fenêtre vide, mais le projet n’est pas encore enregistré. Appuyez sur Ctrl + S pour l’enregistrer dans un dossier dédié.

Voici la liste des fichiers du projet après l’enregistrement.
Dossier backup
Répertoire de sauvegardes automatiques, il conserve les anciennes copies des fichiers pour une restauration en cas de suppression accidentelle ou d’erreurs de saisie.
project1.ico
Icône de l’application, affichée sur la fenêtre du programme et le raccourci bureau après compilation.
project1.lpi
Fichier de configuration du projet : stocke les paramètres de compilation, les unités importées, les réglages de plateforme, les paquets de dépendance et toutes les configurations globales du projet.
project1.lpr
Fichier source principal du projet, point d’entrée du programme qui gère l’ensemble des unités de formulaire.
project1.lps
Fichier de session de l’IDE : enregistre les fichiers ouverts la dernière fois, la disposition des fenêtres et la position du curseur ; restaure automatiquement l’espace de travail à l’ouverture du projet.
project1.res
Fichier de ressources compilé qui regroupe les ressources embarquées : icônes, informations de version, etc.
unit1.lfm
Fichier de mise en page du formulaire, il contient la taille de fenêtre, les coordonnées, les contrôles, les titres et tous les paramètres de l’interface visuelle.
unit1.pas
Fichier de logique du formulaire, on y écrit les événements de clic sur boutons, variables, fonctions et toute logique métier ; il est associé au fichier lfm correspondant.
unit1.pas
Il s’agit de notre fichier source Pascal. Tout comme Delphi, Lazarus est construit sur le langage Pascal.
- Pascal : Langage de programmation fondamental à syntaxe épurée, divisé en Pascal standard et Object Pascal (orienté objet).
- Delphi : IDE et compilateur commercial fermé, utilise Object Pascal, ne fonctionne nativement que sur Windows et fournit la bibliothèque d’interface VCL.
- Lazarus : IDE multiplateforme gratuit et open-source basé sur le compilateur Free Pascal et la bibliothèque LCL. Il est compatible avec la syntaxe Delphi et permet de compiler des applications natives pour Windows, macOS, Linux et d’autres systèmes.
En une phrase : Pascal est le langage, Lazarus et Delphi sont deux outils de développement IDE distincts.
Voici le code source contenu dans le fichier pas :
unit Unit1; // Nom de l’unité Unit1
{$mode objfpc}{$H+} // Directive de compilation : mode ObjFPC + prise en charge des chaînes longues
interface // Section interface : expose les classes et variables visibles de l’extérieur
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs; // Import des bibliothèques de base
type
TForm1 = class(TForm) // Classe de la fenêtre principale, hérite du formulaire de base
private // Membres privés
public // Membres publics
end;
var
Form1: TForm1; // Instance globale de la fenêtre
implementation // Section implémentation : contient toute la logique de code
{$R *.lfm} // Lie le fichier de mise en page visuelle Unit1.lfm
end.Langage du code : JavaScript (javascript)
*.lfm : Fichier de mise en page de formulaire Lazarus, stocke les contrôles glissés-déposés, dimensions de fenêtre et propriétés ;
interface déclare ce qui est accessible de l’extérieur, implementation contient la logique métier ;
La directive intégrée {$mode objfpc} active le mode de compilation orienté objet standard de Free Pascal ;
Un projet vierge ne contient aucun bouton ni événement, seulement une structure minimale de fenêtre ; vous pouvez glisser des composants directement pour ajouter des fonctionnalités.
unit1.lfm
unit1.lfm est notre fichier de mise en page du formulaire
object Form1: TForm1
Left = 915
Height = 240
Top = 237
Width = 320
Caption = 'Form1'
LCLVersion = '4.8.0.0'
end
Langage du code : JavaScript (javascript)
Détail des paramètres ci-dessous :
object Form1: TForm1 // Définit l’objet : instance de fenêtre de type TForm1
Left = 915 // Décalage gauche de la fenêtre par rapport à l’écran : 915 pixels
Height = 240 // Hauteur de la fenêtre : 240 pixels
Top = 237 // Décalage haut de la fenêtre par rapport à l’écran : 237 pixels
Width = 320 // Largeur de la fenêtre : 320 pixels
Caption = ‘Form1’ // Texte de la barre de titre de la fenêtre
LCLVersion = ‘4.8.0.0’ // Version de la bibliothèque LCL ayant généré cette mise en page
end // Fin de la définition de l’objet fenêtre
project1.ico
Il s’agit d’un fichier icône .ico utilisé comme icône de l’application.

Il peut être ouvert avec n’importe quel navigateur web.
project1.lpi
C’est un document XML.
Le fichier project1.lpi est le fichier de configuration central du projet, divisé en trois grandes parties :
1. ProjectOptions Paramètres de base du projet
<Version Value="12"/>: Version 12 du format de fichier de configuration<PathDelim Value="\\"/>: Barre oblique inverse, séparateur de chemin sous Windows
General Paramètres généraux du projet
SessionStorage=InProjectDir: Les enregistrements de l’IDE sont stockés dans le dossier du projetTitle=project1: Nom du projetScaled=True: La fenêtre s’adapte automatiquement aux écrans haute définitionResourceType=res: Utilisation d’un fichier res pour stocker les icônesUseXPManifest=True: Active les styles visuels modernes de WindowsDpiAware=True: L’application gère les écrans haute DPI pour éviter une interface floue
Icon=0: Utilisation de l’icône ico par défaut du projet
BuildModes
Seul le profil de compilation par défaut Default (où on distingue Debug et Release)
RequiredPackages
Dépendance à la bibliothèque de composants graphiques LCL (indispensable pour les programmes GUI)
Units Liste des fichiers inclus dans le projet
project1.lpr: Point d’entrée principal du programmeunit1.pas: Unité de formulaire liée à la classe Form1 correspondant à la fenêtre visuelle
2. CompilerOptions Paramètres du compilateur
- Nom de l’exécutable généré :
project1 - Dossier de sortie des fichiers intermédiaires de compilation :
lib\CPU-système(exemple : lib\x86_64-win64) <GraphicApplication=True>: Marque le programme comme application graphique Windows, pas une console
3. Debugging Paramètres de débogage
Ignore certaines exceptions sans interrompre le débogage : EAbort, erreurs d’ouverture de fichier, erreurs de code outil, etc.
project1.lpr
Ce fichier utilise également la syntaxe Free Pascal (Object Pascal)
// Définit ce fichier comme point d’entrée principal du projet
program project1;
// Directives de compilation : activer la syntaxe orientée objet et la prise en charge des chaînes longues
{$mode objfpc}{$H+}
uses
// Importe la bibliothèque de threads pour les systèmes Unix (Linux/macOS)
{$IFDEF UNIX}
cthreads,
{$ENDIF}
// Importe la bibliothèque de threads pour les systèmes Amiga
{$IFDEF HASAMIGA}
athreads,
{$ENDIF}
Interfaces, // Couche graphique basse niveau multiplateforme de LCL
Forms, // Cadre de base des formulaires
Unit1 // Unité de fenêtre personnalisée principale
{ you can add units after this }; // Ajoutez de nouvelles unités ici
{$R *.res} // Charge le fichier de ressources du projet (icônes, informations de version)
begin
RequireDerivedFormResource:=True; // Autorise la lecture des fichiers de mise en page lfm
Application.Scaled:=True; // Mise à l’échelle automatique de l’interface pour les écrans haute DPI
{$PUSH}{$WARN 5044 OFF} // Désactive temporairement l’avertissement de compilation 5044
Application.MainFormOnTaskbar:=True; // Affiche une icône indépendante de la fenêtre principale dans la barre des tâches
{$POP} // Rétablit les règles d’avertissement initiales
Application.Initialize; // Initialise l’environnement d’exécution de l’application GUI
Application.CreateForm(TForm1, Form1); // Instancie la fenêtre principale Form1
Application.Run; // Lance la boucle de messages de fenêtre en attente des interactions utilisateur
end.Langage du code : PHP (php)
Différence à expliquer :
- Fichiers
.pasclassiques : unités (formulaires ou modules fonctionnels) .lpr: Fichier Pascal principal du projet, point de lancement du programme
project1.lps
Lazarus Project Session (fichier de session du projet), ce n’est pas du code Pascal
C’est un simple enregistrement de configuration propre à l’IDE qui conserve l’état d’édition de votre dernière session sur le projet
Exemples : quels fichiers de code/formulaires étaient ouverts, position/taille/disposition fractionnée des fenêtres, position du curseur, points d’arrêt, historique des recherches, etc.
.lpr/.pas : Fichiers source indispensables à la compilation ;
.lps : Fichier temporaire réservé à l’IDE, sans incidence sur la compilation.
project1.res
Fichier binaire de ressources compilé
Généré automatiquement à partir de project1.ico, des informations de version du programme et du manifeste visuel Windows lors de la compilation
- Stocke l’icône du logiciel visible dans les propriétés du fichier exécutable, la barre des tâches et les raccourcis bureau après compilation
- Enregistre les paramètres de ressources système : haute DPI, styles visuels XP de Windows, etc.
Lien de compilation La directive de code {$R *.res} intègre ce fichier de ressources dans l’exécutable final Caractéristiques
- Peut être supprimé sans risque ; il se régénère automatiquement à la prochaine compilation du projet ;
- Nécessaire uniquement pour les applications GUI Windows ; les logiciels console ne génèrent pas ce fichier.
Dans l’IDE, vous voyez ce panneau de conception visuelle

Il s’agit de notre concepteur visuel de formulaires, vous pouvez glisser-déposer tous types de composants dessus. Son fonctionnement est quasiment identique à VB, WinForms, WPF, Delphi, Qt et autres outils de développement par formulaires.
Par exemple, glissez un bouton sur le formulaire

Lancez à nouveau le projet.

Un bouton apparaît sur la fenêtre.

Dans le panneau Messages en bas, vous voyez le dossier de sortie de l’exécutable exe
Un nouveau fichier exe est créé directement dans le dossier du projet

Cet exe est votre programme compilé final, vous pouvez l’envoyer directement sur d’autres ordinateurs pour l’exécuter ; c’est un exécutable autonome sans dépendances externes.
Il s’exécute extrêmement vite…