Detaillierte Analyse des ersten Projekts

In der vorherigen Lektion öffnet die IDE standardmäßig ein Projekt mit leerem Fenster, das Projekt ist aber noch nicht gespeichert. Drücken Sie Strg + S, um das Projekt in einem Ordner abzuspeichern.

Nach dem Speichern sehen Sie die Projektdateien wie oben abgebildet.

backup-Ordner

Automatisches Sicherungsverzeichnis, speichert alte Dateikopien zur Wiederherstellung bei versehentlichem Löschen oder fehlerhafter Bearbeitung.

project1.ico

Programmsymbol, das nach dem Kompilieren im Fenster und auf dem Desktop-Verknüpfung angezeigt wird.

project1.lpi

Projektkonfigurationsdatei: Speichert Kompilierungsparameter, referenzierte Units, Plattformeinstellungen, Abhängigkeitspakete und weitere globale Projekteinstellungen.

project1.lpr

Hauptprogramm-Einstiegsdatei (Hauptquellcode), Startpunkt des Programms, verwaltet alle Formular-Units.

project1.lps

IDE-Sitzungsprotokoll: Speichert zuletzt geöffnete Dateien, Fensterlayout, Cursorpositionen; stellt die Bearbeitungsoberfläche beim Öffnen des Projekts automatisch wieder her.

project1.res

Kompilierte Ressourcen-Binärdatei, bündelt Symbole, Versionsinformationen und weitere eingebettete Ressourcen.

unit1.lfm

Formular-Layoutdatei, speichert Fenstergröße, Koordinaten, Steuerelemente, Titel und weitere visuelle Oberflächeneinstellungen.

unit1.pas

Formular-Logik-Quelldatei, hier schreiben Sie Button-Klick-Ereignisse, Variablen, Funktionen und Geschäftslogik; wird gemeinsam mit der passenden LFM-Datei verwendet.

unit1.pas

Dies ist unsere Pascal-Quelldatei. Genau wie Delphi basiert Lazarus auf der Pascal-Sprache.

  1. Pascal: Grundlegende Programmiersprache mit übersichtlicher Syntax, unterteilt in Standard-Pascal und objektorientiertes Object Pascal.
  2. Delphi: Kommerzielle Closed-Source-IDE und Compiler, nutzt Object Pascal, unterstützt nativ nur Windows und enthält die VCL-Oberflächenbibliothek.
  3. Lazarus: Kostenlose Open-Source-plattformübergreifende IDE auf Basis des Free Pascal-Compilers mit LCL-Komponentenbibliothek. Kompatibel mit Delphi-Syntax, kann Programme für Windows, macOS, Linux und weitere Systeme kompilieren.

Kurz zusammengefasst: Pascal ist die Programmiersprache, Lazarus und Delphi sind zwei unterschiedliche IDE-Entwicklungswerkzeuge.

Hier sehen Sie den Quellcode aus der PAS-Datei:

unit Unit1;                // Unit-Dateiname Unit1

{$mode objfpc}{$H+}        // Compileranweisung: ObjFPC-Modus + Unterstützung langer Zeichenketten

interface                  // Schnittstellenbereich: Klassen und Variablen nach außen sichtbar machen
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs; // Einbindung grundlegender Bibliotheken

type
  TForm1 = class(TForm)    // Hauptfenster-Klasse, erbt von Basisformular
  private                  // Private Mitglieder
  public                   // Öffentliche Mitglieder
  end;

var
  Form1: TForm1;           // Globale Fensterinstanz

implementation            // Implementierungsbereich: Hier steht die gesamte Logik
{$R *.lfm}                 // Bindet die visuelle Formularlayout-Datei Unit1.lfm

end.Code-Sprache: JavaScript (javascript)

*.lfm: Lazarus Formular-Layoutdatei, speichert gezogene Steuerelemente, Fenstergrößen und Eigenschaften;

interface deklariert öffentliche Schnittstellen, implementation enthält die Geschäftslogik;

Die eingebaute Anweisung {$mode objfpc} aktiviert den standardmäßigen objektorientierten Kompilierungsmodus von Free Pascal;

Ein leeres Projekt enthält keine Buttons oder Ereignisse, nur ein minimales Fenstergerüst; Sie können direkt Steuerelemente ziehen, um Funktionen hinzuzufügen.

unit1.lfm

unit1.lfm ist unsere Formular-Layoutdatei

object Form1: TForm1
  Left = 915
  Height = 240
  Top = 237
  Width = 320
  Caption = 'Form1'
  LCLVersion = '4.8.0.0'
end
Code-Sprache: JavaScript (javascript)

Erläuterung der einzelnen Parameter:

object Form1: TForm1 // Objektdefinition: Fensterinstanz vom Typ TForm1
Left = 915 // Linker Abstand des Fensters zum Bildschirmrand: 915 Pixel
Height = 240 // Fensterhöhe: 240 Pixel
Top = 237 // Oberer Abstand des Fensters zum Bildschirmrand: 237 Pixel
Width = 320 // Fensterbreite: 320 Pixel
Caption = ‚Form1‘ // Text der Fenstertitelleiste
LCLVersion = ‚4.8.0.0‘ // Version der LCL-Bibliothek, die dieses Layout erstellt hat
end // Ende der Fensterobjektdefinition

project1.ico

Dies ist eine ICO-Symboldatei, die als Anwendungssymbol verwendet wird.

Sie kann mit jedem Webbrowser geöffnet werden.

project1.lpi

Dies ist ein XML-Dokument.

Die Datei project1.lpi ist die zentrale Projektkonfiguration, gegliedert in drei Hauptblöcke:

1. ProjectOptions Basiseinstellungen des Projekts

  • <Version Value="12"/>: Formatversion der Konfigurationsdatei 12
  • <PathDelim Value="\\"/>: Windows-Pfadtrennzeichen Backslash

General Allgemeine Projekteinstellungen

  • SessionStorage=InProjectDir: IDE-Bearbeitungsdaten werden im Projektordner gespeichert
  • Title=project1: Projektname
  • Scaled=True: Fenster skaliert automatisch für hochauflösende Bildschirme
  • ResourceType=res: Nutzt RES-Ressourcendatei zur Speicherung von Symbolen
  • UseXPManifest=True: Aktiviert moderne Windows-Optik
    • DpiAware=True: Programm unterstützt hohe DPI-Bildschirme, unscharfe Oberflächen werden vermieden
  • Icon=0: Nutzt das standardmäßige ICO-Symbol des Projekts

BuildModes

Nur das Standard-Kompilierungsprofil Default (hier werden Debug- und Release-Modi unterschieden)

RequiredPackages

Abhängigkeit von der LCL-Grafikkomponentenbibliothek (unverzichtbar für GUI-Programme)

Units Im Projekt enthaltene Dateiliste

  1. project1.lpr: Haupteinstiegspunkt des Programms
  2. unit1.pas: Formular-Unit gebunden an die Form1-Klasse des visuellen Fensters

2. CompilerOptions Compiler-Kompilierungsparameter

  • Ausführbarer Dateiname: project1
  • Ausgabeordner für Zwischenkompilierungsdateien: lib\CPU-System (z. B. lib\x86_64-win64)
  • <GraphicApplication=True>: Markiert das Programm als grafische Windows-GUI-Anwendung, keine Konsolenanwendung

3. Debugging Debug-Einstellungen

Bestimmte Ausnahmen werden ignoriert, sodass der Debugger nicht unterbricht: EAbort, Dateiöffnungsfehler, Toolcode-Fehler usw.

project1.lpr

Diese Datei nutzt ebenfalls die Syntax von Free Pascal (Object Pascal)

// Definiert diese Datei als Haupteinstiegspunkt des Projekts
program project1;

// Compileranweisungen: Aktiviert objektorientierte Syntax und Unterstützung langer Zeichenketten
{$mode objfpc}{$H+}

uses
  // Einbindung Thread-Bibliothek für Unix-Systeme (Linux/macOS)
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  // Einbindung Thread-Bibliothek für Amiga-Systeme
  {$IFDEF HASAMIGA}
  athreads,
  {$ENDIF}
  Interfaces, // Plattformübergreifende unterlagernde Grafikschnittstelle von LCL
  Forms,     // Basis-Formularframework
  Unit1      // Eigene Hauptfenster-Unit
  { you can add units after this }; // Neue Units hier einfügen

{$R *.res} // Lädt die Projektressourcendatei (Symbole, Versionsinformationen)

begin
  RequireDerivedFormResource:=True; // Aktiviert das Laden von LFM-Formularlayoutdateien
  Application.Scaled:=True;        // Automatische Oberflächenskalierung für hochauflösende Bildschirme
  {$PUSH}{$WARN 5044 OFF}          // Deaktiviert vorübergehend Compiler-Warnung 5044
  Application.MainFormOnTaskbar:=True; // Hauptfenster bekommt eigenes Taskleistensymbol
  {$POP}                           // Stellt ursprüngliche Warnungseinstellungen wieder her

  Application.Initialize;           // Initialisiert die Laufzeitumgebung der GUI-Anwendung
  Application.CreateForm(TForm1, Form1); // Erstellt die Instanz des Hauptfensters Form1
  Application.Run;                 // Startet die Fensternachrichtenschleife, wartet auf Benutzerinteraktionen
end.Code-Sprache: PHP (php)

Unterschied zur Erklärung:

  • Gewöhnliche .pas: Unit-Dateien (Formulare oder Funktionsmodule)
  • .lpr: Haupt-Pascal-Projektdatei, Startpunkt des Programms

project1.lps

Lazarus Project Session (Projektsitzungsdatei), kein Pascal-Quellcode

Es handelt sich um reine IDE-Konfigurationsaufzeichnung, speichert den Bearbeitungszustand der letzten Projektsitzung

Beispiele: Geöffnete Code-/Formulardateien, Position und Größe aller Fenster, aufgeteilte Layouts, Cursorpositionen, Breakpoints, Suchverlauf und vieles mehr

.lpr/.pas: Quellcodedateien, zwingend für die Kompilierung erforderlich;

.lps: Nur temporäre Aufzeichnungsdatei für die IDE, hat keinen Einfluss auf die Kompilierung.

project1.res

Kompilierte binäre Ressourcendatei

Wird automatisch generiert aus project1.ico, Programmversionsinformationen und dem Windows-Oberflächenmanifest während der Kompilierung

  • Speichert das Software-Symbol, das nach der Kompilierung bei Rechtsklick auf die EXE, in der Taskleiste und auf Desktop-Verknüpfungen angezeigt wird
  • Enthält Systemressourceneinstellungen wie Windows-Hochauflösungsunterstützung und XP-Optikstile

Kompilierungsverknüpfung Die Code-Anweisung {$R *.res} bindet diese Ressourcendatei in die fertige EXE ein Eigenschaften

  • Kann bedenkenlos gelöscht werden; wird bei der nächsten Projektkompilierung automatisch neu erstellt;
  • Nur für Windows-GUI-Programme erforderlich, Konsolenanwendungen erzeugen diese Datei nicht.

Wenn Sie die IDE öffnen, sehen Sie diesen visuellen Designer-Bereich

Dies ist unser visueller Formulareditor, Sie können beliebige Steuerelemente darauf ziehen. Die Arbeitsweise entspricht weitgehend VB, WinForm, WPF, Delphi, Qt und anderen formbasierten Entwicklungswerkzeugen.

Beispiel: Ziehen Sie einen Button auf das Formular

Führen Sie das Projekt erneut aus.

Auf dem Fenster erscheint ein neuer Button.

Im unteren Nachrichtenfenster Messages sehen Sie den Ausgabeordner der erstellten EXE-Datei

Direkt im Projektordner wird eine neue EXE-Datei erzeugt

Diese EXE ist unser fertiges kompiliertes Programm, Sie können es direkt an andere Computer senden und ausführen – es ist eine eigenständige ausführbare Datei ohne zusätzliche Laufzeitabhängigkeiten.

Die Ausführgeschwindigkeit ist extrem hoch…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert