Selbst programmieren


Lernen Sie, mit Delphi-5 ihre eigenen Anwendungen und Programme zu erstellen. 

Erste Schritte für die Arbeit mit Delphi 5:

- Starten von Delphi, danach erscheint ungefähr folgender Bildschirm:

Bild 1: Delphi 5 mit Werkzeugleiste (oben), Objektinspektor (links unten), Editor (hinten) und Hauptform (vorn)

- Richten Sie den Bildschirm etwa so ein, wie oben gezeigt und öffnen Sie im Hauptmenü "Tools | Umgebungsoptionen | Präferenzen"

- Beide Häkchen für die Auto-Speichern-Optionen setzen, Ok

- Richten Sie unter "C:\Programme\Borland\Delphi5\Projects\..." ein Unter-Verzeichnis z.B. "Test01" ein

- Klicken Sie den in Bild 1 rot markierten grünen Pfeil und wählen Sie zum Speichern einiger Dateien Ihr Verzeichnis "Test01"

Bild 2: Delphi 5 hat ein neues, leeres Programm erzeugt, compiliert und gestartet

- Ihr erstes Programm ist fertig: Es kann zwar noch nichts, aber es lässt sich schon (im rot markierten Bereich) minimieren, maximieren und beenden

- Das neu erzeugte Programm finden Sie im Ordner "C:\Programme\Borland\Delphi5\Projects\Test01\Project1.exe"

- Beenden Sie das neue Programm mit Klick auf des Kreuz im rot markierten Bereich (Bild 2), und Ihr Bildschirm sieht wieder aus wie in Bild 1

- Wählen Sie nun (Bild 3) in der Werkzeugleiste den Rider "Zusätzlich" (rot markiert) und klicken Sie die Komponente "Speedbutton" an

- Spannen Sie über der Hauptform mit der linken Maustaste ein Rechteck auf: Ihr erster Button ist platziert:

Bild 3: Ein Button wurde auf der Hauptform des Programms platziert

- Klicken Sie im grün markierten Bereich in das Eingabefeld rechts neben "Caption" und schreiben Sie "Ende" als Button-Beschriftung

- Der Objekt-Inspektor zeigt Eigenschaften und Ereignisse immer des markierten Objektes (hier: des Buttons) oder der Form

- Wählen Sie (bei markiertem Button) im Objekt-Inspektor den Rider "Ereignisse" 

- Doppel-Klicken Sie in des Eingabefeld rechts neben dem Ereignis "OnClick"

Bild 4: Zwischen "begin" und "end;" der Prozedur stehen die Befehle für dieses Ereignis

- Delphi hat für den Button mit Namen "SpeedButton1" im Textbereich eine "procedure" erstellt und im Inspektor für den Button vermerkt

- Der Inhalt dieser Prozedur wird immer dann abgearbeitet, wenn das Ereignis "OnClick" des Buttons eintritt

- Die Ansicht wechselt zum Editor, dort steht die neue Prozedur "procedure TForm1.SpeedButton1Click(...);"

- Jede Prozedur wird begrenzt durch "begin" und "end;", lernen Sie später in der "Hilfe" die Syntax der Sprache "TurboPascal"

- Tragen Sie nun (in Bild 4 rot markiert) den Befehl "form1.close;" ein (mit Punkt dazwischen und abschließendem Semikolon)

- "Form1" ist der bisherige Name unseres Hauptformulars (man hätte dem zuvor auch einen anderen Namen geben können)

- Das Objekt "Form1" besitzt Eigenschaften und Ereignisse und Methoden, zu denen auch "close" gehört

- Starten Sie das Programm erneut mit Klick auf den grünen Pfeil oben (siehe Bild 1)

Bild 5: Jetzt hat unsere neue Software eine erste Funktion: Man kann Sie mit Klick auf den Button "Ende" schließen

- Beenden Sie das Programm mit Klick auf den Button "Ende"

- Platzieren Sie - analog zu Bild 3 - eine zweiten Speedbutton auf Ihrer Hauptform und beschriften Sie ihn mit "Zähler"

- Wechseln sie in der Werkzeugleiste oben zum Rider "Standard" und klicken Sie das Symbol "A" (Label: ein einfaches Textfeld)

- Platzieren Sie - analog zum Speedbutton - einen Label irgendwo auf der Hauptform

- Im Objektinspektor (links) ist unter "Caption" als Anfangs-Beschriftung "Label1" vorgegeben

- Weiter unten finden Sie die Eigenschaft "Font": Rechts daneben den kleinen Button [...] klicken (in Bild 6 rot markiert)

- Stellen Sie die Schriftgröße auf 18 und verlassen Sie das Schriftarten-Fenster mit "Ok"

Bild 6: Ein zweiter Speedbutton mit der Beschriftung "Zähler" und ein Label mit Schriftgröße 18

- Die Aufgabe ist, mit jedem Klick auf den Button "Zähler" eine Zahl im Textfeld "Label1" um eins zu erhöhen

- Markieren Sie den "Label1" und tragen Sie in seine Eigenschaft "Caption" eine 1 ein (Start-Zahl)

- Markieren Sie den neuen Speedbutton "Zähler" durch einfaches Anklicken und wechseln Sie im Objektinspektor zum Rider "Ereignisse"

- Wie schon oben: auch hier rechts neben dem Ereignis "OnClick" in das leere Eingabefeld doppelklicken

- Die Prozedur "TForm1.Speedbutton2Click(...);" wurde erstellt und ist jetzt im Editor angezeigt

- Zwischen "begin" und "end;" schreiben Sie die folgenden Befehle:

     val(label1.caption,Z,C);    // wandelt die Bezeichnung des label1 um in eine numerische Zahl, die nun in der Variablen Z gespeichert ist

     inc(Z);    // erhöht den Inhalt der Variablen Z um 1 ("incrementieren", ist gleichbedeutend mit Z:=Z+1;

     str(Z,S);    // wandelt den Inhalt der Variablen Z von einer numerischen Größe (Zahl) um in eine Zeichenkette (String) und weist diesen String der Variablen S zu

     label1.caption:=S;    // der Inhalt der Variablen S wird der Caption-Eigenschaft (Beschriftung) des Label1 zugewiesen

- die grüne Schrift sind erklärende Kommentare, man kann sie mit in den Quelltext übernehmen (muss aber nicht)

- Die Label1-Beschriftung wird in eine Zahl umgewandelt, diese um eins erhöht und danach wieder - als Zeichenkette(!) -  an den Label1 gegeben

- Aber die benutzten Variablen Z, C und S müssen zuvor auch vereinbart werden, schreiben Sie vor dem "begin":

     var    // Anfang der Variablen-Deklaration, die hier vereinbarten Variablen gelten nur innerhalb dieser Prozedur

        Z: integer;    // ganzzahliger Wert, kann auch negativ sein, hat aber keine Komma-Stellen

        C: integer;    // Der Befehl "val" setzt C als eine Art Rückantwort, um zu melden, ob die Umwandlung der Zeichenkette in eine Zahl geklappt hat

        S: string;    // Zeichenkette, bitte beachten: 1234 ist eine Zahl, "1234" ist eine Zeichenkette wie auch "Müller345"

Bild 7: Die Prozedur "TForm1.Speedbutton2Click(...);" enthält jetzt 3 Variablen und 4 Befehle

- Starten Sie Ihr Programm wieder mit Klick auf den in Bild 1 rot markierten grünen Pfeil

 

Bild 8: Nach 3 Klicks auf den Button "Zähler" zeigt der Label die Beschriftung 4

- Klicken Sie auf Ihren Button "Ende" und schließen Sie auch Delphi, keine Sorge - alles ist vor Programm-Start abgespeichert worden

- Beim nächsten Start von Delphi wird Ihr zuletzt bearbeitetes Programm automatisch wieder geöffnet


Hier einige wichtige Tipps und Hinweise für Ihre ersten Programme:

Klicken Sie in der Werkzeugleiste eine Komponente wie den Speedbutton an und drücken Sie F1 für Hilfe, um mehr darüber zu erfahren, wozu die jeweilige Komponente gut ist und wie man sie einsetzt. Ziehen Sie danach eine Komponente auf die Hauptform (durch Aufspannen eines Rechteckes mit der linken Maustaste, dann ist sie automatisch markiert) und klicken Sie im Objekt-Inspektor auf eine ihrer Eigenschaften oder auf eins der bei dieser Komponente eintretenden Ereignisse (auch, wenn dort noch nichts d'rin steht) und drücken Sie erneut F1, um zu erfahren, welche Bedeutung die Eigenschaften und Ereignisse haben und wie man sie benutzt. Delphi 5 hat eine sehr gute kontextsensitive und umfangreiche Hilfe-Dokumentation - auch im Editor kann man den Cursor auf einen Befehl setzen und dann Ctrl + F1 drücken, um mehr darüber zu erfahren. 

Delphi ist modular aufgebaut: Ihr erstes Programm besteht zunächst aus einer sogenannten Unit (also einer Quelltext-Datei ("unit1.pas"), zu der auch ein Formular gehört. Ein Formular ist in Delphi das, was später der Benutzer Ihres Programms als "Fenster" bezeichnen wird. Was in einem Formular (Fenster) alles für Komponenten aus der Werkzeugleiste (für den User sind das dann später die Elemente der grafischen Benutzeroberfläche - auch GUI genannt) benutzt werden, ist in der zugehörigen Datei "unit.dfm" gespeichert. Es gibt aber auch ganz viele Units ohne Formulare, die eine riesige Menge an Befehlen beinhalten, die man benutzen kann. Wer z.B. ein Mathematik-Programm schreiben möchte, wird z.B. Funktionen wie den "Sinus hyperbolicus" verwenden wollen - dazu muss man nur die Unit "math", die Delphi schon mitbringt, in das eigene Programm einbinden. Das geschieht einfach durch Hinzunahme des Unit-Namens in die Uses-Klausel Ihres Programms. Diese Klausel finden Sie im Quelltext-Editor ganz vorn im Text unterhalb des Wortes "interface".

Bild 9: Hinzunahme der Unit "math" und damit vieler zusätzlicher mathematischer Befehle in das Programm (rot markierter Bereich)

Wenn Sie ein neues leeres Programm erzeugt haben, dann stehen eine Reihe der bereits hierbei benutzten Units schon von Anfang an in dieser Uses-Klausel. Aber nicht alle, die es gibt - denn kein Programm kann oder will Alles und braucht deswegen auch nicht Alles. Welche Units es überhaupt gibt und was sie enthalten, erfahren Sie auch in der Hilfe (im Editor Cursor auf des Wort "Unit" und Ctrl + F1 drücken).

Im grün markierten Bereich des Bildes 9 finden Sie die Stelle im Quelltext, an der man Variablen deklarieren kann, die nicht nur innerhalb einer Prozedur gültig sind, sondern (prozedur-übergreifend) innerhalb der ganzen Unit. Dies ist manchmal von Vorteil, wenn z.B. mit verschiedenen Button und deren Ereignis-Prozeduren eine Zahl oder Zeichenkette unterschiedlich verändert werden soll. Aber aufgepasst: Ein solche globale Variable darf niemals den gleichen Namen haben wie eine lokale Variable innerhalb einer dieser Prozeduren, denn die globale Variable gilt ebenfalls innerhalb der Prozedur und dann weiß Delphi nicht, welche zu benutzen ist. Ein typischer Programmier-Fehler.

Im übrigen gibt es viele im Lieferumfang enthaltene Beispiele fertiger kleiner Programme, die man untersuchen kann. Gehen Sie dazu im Windows-Explorer in das Verzeichnis "C:\Programme\Borland\Delphi5\Demos\...", wählen Sie eines der thematisch angelegten Unterverzeichnisse und doppelklicken Sie dort die jeweilige *.dpr - Datei. Von denen lassen sich aber nicht alle sofort mit dem grünen Pfeil starten, weil da bereits kompliziertere Dinge vorausgesetzt werden. "C:\Programme\Borland\Delphi5\Demos\Doc\Textedit\textedit.dpr" zum Beispiel funktioniert sofort und gibt ein Beispiel für einen kleinen, in Delphi programmierten Text-Editor.

Viel Spaß und Erfolg !!