Step 02 - Hallo Welt

Spendenaufruf des DRK Ortsvereins Spielberg e.V.

16. April 2023

 

Hallo liebe Besucherin, hallo lieber Besucher!

In einem ganz anderen Kontext möchte ich hier nun bewerben:
Der Verein, für den ich auch einstehe, benötigt Spenden.
Ich habe vergangenes Jahr über fünf Monate versucht für delphi-lernen.de Spenden zu sammeln - es blieb leider bei 20 Euro von zwei Spendewilligen.
Nun hoffe ich, da es nicht um mich geht, dass sich mehr entschließen und für eine gute Sache zu spenden:

Alle Informationen - auch für die Überweisung den Verwendungszweck beachten!

Der neuste Stand, mindestens einmal im Monat hier zu sehen!

Jeder kann etwas bewirken, wenn er nur den Mut hat, es zu versuchen. (Martin Luther King Jr.)

 

 

1. Vorstellung der IDE:

Wenn die IDE korrekt installiert wurde, startet sie mit etwa folgendem Startbild (Zum Zeitpunkt der Erstellung dieses Screenshots, ist es die Delphi Version 11.3)
Screenshot von Delphi 11.3 Community-Edition Splash-Screen
 

Hinweis zu den hier gezeigten Screenshots

Juni 2023

Da Delphi Community-Edition Version 11.3 sich nur geringfügig im ersten Look'n'Feel, aber eben nicht grundlegend von der Version 10.4 unterscheidet, wird auf die Erneuerung von weiteren Screenshots erstmal verzichtet.
 
Nach dem Öffnen erscheint eine Willkommensseite mit einigen Infos und den Möglichkeiten, die man gerade zur Verfügung hat, sowie aktuellen News von Embarcadero. Die folgenden Screenshots sind entstanden, nachdem ich einige Komponenten auf das Formular aus der Objektpalette (Palette) gezogen habe (Drag&Drop).
 
Schauen wir uns die einzelnen Elemente des Fensters an, nachdem wir einige Elemente der VLC (=Visuel Component Library) in das Formular gezogen haben:
Die Menüleiste. Zu Beginn ist nur die Win32 Entwicklung aktiviert. Wer 64-Bit Anwendungen erstellen möchte kann das in der "Projektverwaltung" einstellen bzw. hinzufügen ... naja, was hier genau dahinter steckt, ist vielleicht dann doch eher für den Vertiefungskurs wichtig. Die integrierte Hilfe in Delphi ist oft auch schon sehr hilfreich. Siehe auch: "Symbolleiste (Tutorial)"
 
Strukturansicht des Formulars.
Hier kann die Objekthierarchie des Formulars betrachtet und verändert werden. Dies ist z.B. nützlich, wenn man hier das Panel1 löschen, aber die anderen Objekte behalten möchte, dann lohnt sich ein Blick auf die Strukturansicht. Löscht man ohne dies zu beachten, dann werden alle anderen Objekte mitgelöscht. Hier kann man einfach die Objekte, die nicht gelöscht werden sollen, verschieben.
 
Eines der wichtigsten Utilities bei Delphi ist der Objektinspektor:

Hier können die Objekte aus der VCL, Visuel Component Library, ganz einfach verwaltet werden. Eigenschaften sind nach Kategorien sortiert, die das finden erleichtern können. Wer allerdings die nach Namen sortierte Ansicht bevorzugt, kann diese wieder einstellen, indem er per Rechtsklick auf den "Eigenschaften"-Tab -> "Anordnen" -> "nach Name" auswählt.

Eigenschaften sind z.B. der Text oder Titel den ein Objekt hat, das Text anzeigen kann. Dies is die Eigenschaft "Caption" vom Typ "TCaption" oder "Text" vom Typ "TCaption".

Unter Ereignisse befinden sich die Verbindungen zu den Ereignis-Methoden. Das am häufigsten verwendete Ereignis ist ohne Zweifel wohl das OnClick-Ereignis. Sobald auf ein Objekt geklickt wurde (Bsp: auf einen Button) soll etwas ausgeführt werden. Per Doppelklick auf das Ereignis wird automatisch eine Ereignis-Methoden (Prozedur) erstellt und man wird sofort in die Code-Ansicht (s.u.) gebracht.
Was auch häufig genutzt wird: OnCreate - Die FormCreate-Procedure, wird "beim" Erstellen des Formulars ausgeführt, quasi beim Start des Programmes.

 
Die Formularansicht ist standardmäßig das Erste was man sieht, wenn man ein neues VCL-Programm erstellt.

Zum Wechseln zwischen Code- und Formularansicht, genügt es die Taste F12 zu drücken. 

 
Die Projektverwaltung wird am Anfang erstmal keine Rolle spielen. Sie dient zur Verwaltung der einzelnen Module des Projektes oder einer ganzen Projektgruppe.

Hier ist das Project1 mit der Project1.exe und seiner Unit Unit1.pas vertreten. (Übersicht über Dateitypen von Delphi siehe nächstes Kapitel) 

 
Die Tool-Palette beinhaltet alle Objekte der VCL, die Visuel Component Library.

Die VCL dient dazu deutlich schneller die GUI der Anwendung aufzubauen. Man kann einfach mit Hilfe der Maus die Objekte, die man haben möchte, von hier entnehmen und auf dem Formular platzieren, wie man es möchte.

 

Shortcut: F12

Mit F12 kann von der Formular-Ansicht auf die Code-Ansicht gewechselt werden (und zurück). Sobald die Code-Ansicht aktiv ist, ändert sich auch die Darstellung in der Struktur-Ansicht und auch die Palette hat andere Inhalte.
 
Hier in der Code-Ansicht kann man den eigentlichen Quellcode eingeben.

Hier sieht man jetzt den Standardaufbau einer Unit, wenn nur per Drag&Drop einige Objekte eingefügt wurden, genauer: 2 Panels, 2 Buttons, 1 Edit, 1 Label und eine Checkbox. (genaueres zu den einzelnen Objekten, siehe im Step 08 - der OOP Begriffsklärung )

Eingeleitet mit "unit Unit1;": Hier ist die einzige Stelle, bei der Delphi Casesensitiv ist. Wenn man hier Unit1 umbenennen will, muss man dies auch mit dem Dateinamen machen!

Dann wird unterschieden zwischen zwei großen bereichen: dem "interface" und der "implementation":

Das "interface" soll erstmal alle Informationen über die implementierten Objekte wiedergeben. Es ist vielleicht mit anderen Programmiersprachen etwa mit Java und dem Interface- Begriff verwechselbar, aber in Delphi ist das standardmäßig die Stelle, in der erstmal alles definiert wird: "uses" benennt alle Units oder Module, die geladen werden sollen. z.B. kann man mithilfe von "INIFiles" den Zugriff auf ini-Dateien einfach regeln. Im "type"-Abschnitt werden alle Objekte, die dann im Implementation-Abschnitt explizit programmiert werden, erstmal definiert: Hier wird der Typ "TForm1" definiert. Hiernach kommen dann die globalen Variablen.

Im "implementation"-Abschnitt befinden sich dann alle Unit-lokalen, für die Implementierung notwendigen Variablen, Konstanten, Methoden, etc. "{$R *.dfm}" ist nicht sonderlich zu beachten. Dies ist eine Compiler-Anweisung, die dem Compiler sagt, dass noch dfm-Dateien beim Erstellen des Programmes beachtet werden muss.

 
Hier sieht man die Struktur-Ansicht des Codes. Dies kann besonderst bei großen Projekten sehr von Nutzen sein.

Eine Klasse ist z.B. ein definiertes Objekt. "TForm1" würe hier unsere Klasse.

Unter "Variablen/Konstanten" stehen die gerade verfügbaren Variablen bzw. Konstanten, die in der Unit definiert sind und auf die man zugreifen kann. 

Bei "Verwendet" werden alle Module aufgelistet, die im uses-Abschnitt eingetragen wurden.

 
An der Stelle der Objekt-Palette ist nun die Darstellung für die Auswahl neuer Dateien, die für das Projekt erstellt werden können - ähnlich, als würde man über das Menü "Datei" gehen.
 
Als weiteres gibt es die Historien-Ansicht. Diese wird automatisch angelegt und von der IDE verwaltet. Unabhängig von GIT, SVN und anderen Code-Versionierungs-Systemen bietet dies an, die letzten Änderungen auch nach dem Speichern des Projektes und schließen der IDE direkt in der IDE wieder Rückgängig zu machen, oder auch nur bei Bedarf schnell die Änderung anzuschauen.
 
Nun kommen wir zum Zweiten Teil in diesem Step: Wir programmieren ein Hallo-Welt-Programm :)
 

 

2. Hallo Welt!

 

a) ein "Neues Projekt" starten:

 

Einfach im Hauptmenü unter "Datei" -> "Neu" -> "Windows-VCL-Anwendung - Delphi"

 

Direkt hiernach speichern wir das Projekt komplett. Dazu einmal unter "Datei" -> "Alles speichern"

Hierbei wird sowohl die Quellcode-Datei wie auch die Projekt-Datei(ein) gespeichert. Näheres zu den Dateien lernen wir im nächsten Kapitel kennen.

 

b) Hallo Welt!

 

Hierzu müssen einfach folgende Schritte durchgeführt werden:

  1. Füge mithilfe der Palette einen Button auf dein Formular (klick auf "Button" in der Toolpalette, dann auf das Formular, ändere die Größe beliebig)

    Alternativ kann man von der Palette den Button auch per Drag&Drop in das Formular einfügen.
  2. Nun den Button markieren. Im Objektinspektor bei "Name" folgendes eingeben: "BtnSagHallo"
    anschließend bei Caption "Klick mich" eingeben.
  3. Klicke nun beim Objektinspektor auf den Tab "Ereignisse"; doppelklicke hier auf das Ereignis "OnClick" (alternativ hierzu kannst du auch direkt im Formular auf den Button doppelklicken, die anderen möglichen Ereignisse sind allerdings nur über den Objektinspektor anzupassen).
  4. Nun solltest du automatisch in die Code-ansicht zu einer frisch erstellten Procedure "procedure TForm1.BtnSagHalloClick(Sender:TObject)...."  gelangt sein.
  5. Der eigentliche Code um den es uns hierbei geht, gibst du nun einfach zwischen "begin" und "end" ein:

       ShowMessage('Hallo Welt!');

  6. In der Menüleiste noch auf das grüne "Wiedergabe"-Dreieck klicken, und schon sollte das Formular auftauchen.

Zur Orientierung: Der untere Teil deines Quellcodes sollte nun so aussehen:

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

end.
 

Herzlichen Glückwunsch!

Dein Hallo-Welt-Programm mit Delphi ist nun fertig! 

Die Exe-Datei, die du hier erzeugt hast, befindet sich in einem Unterverzeichnis des bin-Verzeichnises in deinem Projektverzeichnis!
 
 

Übrigens,

alle Sources befinden sich auf GitHub als komplette Projekte zur Einsicht und zum Download. Der Source von diesem Kapitel / Step 02 gilt auch direkt bis Step 05 als Grundlage.
 
Für alle, die sich vergewissern wollen, ob das so passt, oder hier und da noch zum Quellcode Fragen haben: In den nächsten 3 Kapiteln werden wir immer wieder auf dieses Hallo-Welt-Projekt eingehen und immer mehr dazu erklären. Hier war erstmal das "handling" im Vordergrund, dass man sich mit der IDE erstmals auseinandersetzt und durch Click&Try ein erstes Gefühl bekommt, wie mit Delphi umgegangen werden kann.
Ich wünsch dir viel Spaß und Erfolg für deinen weiteren Start mit Delphi! :)
 

Weiterführende Info:

Benennt Eure Dateien, Objekte (Begriff wird später geklärt) und Variablen immer aussagekräftig!

Beispiele:

Wenn es ein Button ist, der das Programm Beenden soll: BtnCloseApp
Ein Button der eine Grafik bearbeiten und anzeigen soll: BtnRenderAndShowPic
Wenn es ein Label ist, das ein Text zeigen soll: LblShowText
Ein Bild, das ein Banner darstellt: ImgBanner

So kann man auch später noch genau sagen was die Methode machen soll, ohne dass man das Formular betrachten muss.
Im ersten Hallo-Welt-Programm haben wir der Einfachheit wegen deutsche Namen zugelassen.

Für später könnten euch aber seiten wie dict.leo.org sehr hilfreich sein - hier findet ihr sicher die richtigen Wörter ;)