Projekt mit
1 €
unterstützen?
So geht das *:


Step 05 - Delphi-Source Aufbau

Hier wird nun das Delphi-"Hello-World"-projekt näher betrachtet.
Wir öffnen die Projektdatei (Project1.lpr) und die Unit (Unit1.pas) und schauen uns mal an, wie das ganze strukturiert ist.

Project1.lpr:
program Project1;               // Definition: Dies ist ein Programm und heißt Project1

{$mode objfpc}{$H+}             // Dies ist eine s.g. Compiler-Direktive. Diese ist in 
                                // Lazarus notwendig um dem Compiler zu sagen, 
                                // dass es sich hierbei um Lazarus-Code handelt.

uses                            // hier werden die "Units" eingetragen, 
                                // die in dieser Unit genutzt werden.
                                // Auf die einzelnen Units wird später eingegangen
                                // die hier folgenden Kommentare sind
                                //     automatisch generiert:
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1                 
  { you can add units after this };

{$R *.res}                      // Alle Resourcen-dateien laden (Project1.res z.b.)

begin                           // Mit begin startet ein Programm-Abschnitt;
                                // Hier beginnt der Programmquellcode
  Application.Initialize;       // Anwendung initialisieren
  Application.CreateForm(TForm1, Form1); // Formular erstellen
  Application.Run;              // auf Ereignisse achten und Programmende abwarten

end.                            // Ende des Programmes (mit einem "."!)

 

Unit1.pas

unit Unit1;                 // Definition: diese "Unit" heißt "Unit1"
                            // Auch hier Dateiname=Unitname 
                            //    Groß- und Kleinschreibung beachten!

{$mode objfpc}{$H+}

interface

uses                        // hier Werden die "Module" eingetragen,
                            // die in dieser Unit verwendet werden.
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type                        // mit type eingeleitet startet der Abschnitt, in dem die
                            // Objekte, Klassen bzw. Datentypen definiert werden.

  { TForm1 }

  TForm1 = class(TForm)     // Definition der Klasse TForm1 abgeleitet aus der Klasse TForm
    BtnSagHallo: TButton;
    procedure BtnSagHalloClick(Sender: TObject);
  private                   // dies hier wird im einleitenden OOP-Abschnitt 
    { Private-Deklarationen }   // später wieder wichtig.

    // hier können Variablen deklariert werden, ohne vorangehendes "var"
    // über "Sichtbarkeit" von Variablen wird in einem anderen Abschnitt gesprochen.
  public
    { Public-Deklarationen }
    // auch hier können Variablen deklariert werden.
  end;


var                         // Hier können Variablen Deklariert werden, die sogar gleich
  Form1: TForm1;            // initialisiert werden können. Beispiel:  a:Integer=5;

implementation              // Der Implementation-Abschnitt mit allen Ausführungen der
                            // Prozeduren und Funktionen.

                            // Hier können dann die "uses" hin,
                            // die nur im implementation-Abschnitt benötigt werden. 

{$R *.dfm}                  // $R ist eine Compilerdirective, 
                            //      der für uns erstmal uninteressant ist.

                            // Hier ist nun die Prozedur aufgeführt, die ausgeführt wird,
                            // wenn man auf das Objekt BtnSagHallo klickt.
                            // Prozeduren, die durch ein Ereignis 
                            // (Mausklick, Tastendruck etc.)
                            // ausgeführt werden, werden automatisch generiert, 
                            // wenn man im Objektinspektor doppelt auf das Feld
                            // des gesuchten Ereignisses klickt (bzw. dahinter!).

procedure TForm1.BtnSagHalloClick(Sender: TObject);
begin
  ShowMessage('Hallo Welt!');
end;


end.                        // ganz Wichtig: Das Ende wieder mit einem "end" mit Punkt ;-)

Fazit:

  • Die Groß- und Kleinschriebung ist auch in Lazarus nur bei Definition des Programmnamens, des Unitnamens und später auch des DLL-Names ( eingeleitet mit "library") wichtig.
  • Prozeduren von Ereignissen werden durch Doppelklick auf das entsprechende Feld im Objektinspektor automatisch generiert.

Da das Kommentarmodul dieser Seite zur Zeit neu überarbeitet werden muss, sendet bitte alle Fragen, Anregungen oder Probleme mit Betreff zu welchem Thema es sich handelt an folgende Mailadresse:



www.marco-hetzel.de
www.delphi-lernen.de
www.lazarus-lernen.de

© 2006-2019 by Marco Hetzel , last modified 01.11.2018, 11:28

(* Unterstützung dient der Aufrechthaltung laufender Kosten für dieses Projekt.)