Zunächst erkennen wir folgende Elemente:
Komponentenpalette. Aus ihr werden die Komponenten für das Formular ausgewählt und im Formular plaziert. Wird der Mauszeiger über die Komponenten gezogen, werden jeweils zugehörige Informationen angezeigt. Zusätzliche Komponentenseiten stehen über die Register zur Verfügung (am unteren Rand der Palette sichtbar).
Durch Doppelklick auf eine Komponente wird der Quelltext in der zugehörigen Methode geöffnet... Die Programmierung hält sich an die Regeln von Object-Pascal!
Als erstes ziehen wir die Komponenten für "Label" und "Button" auf unser Formularfeld. Durch Ziehen mit der Maus kann die Größe und Position dieser Komponenten veändert werden
Anschließend tragen wir die Programmierbefehle ein, die nach Auswählen einer Komponente ausgeführt werden sollen. Im vorliegenden Beispiel soll nach Druck auf den Button der Text des Labels verändert werden. Per Doppelklick auf das "Button"-Symbol gelangen wir in den Quelltexteditor:
Alle Programmschritte werden in sogenannte "Prozeduren" zusammengefasst. Im Quelltexteditor wird der Cursor automatisch in die Prozedur
procedure Tform1.Button1Click
gestellt (die Befehle sollen ja nach dem Klicken auf der Button ausgeführt werden). Alle Befehle einer Prozedur stehen zwischen den Befehlen begin und end:
Wir tragen den gewünschten Befehl ein:
label1.caption:='Taste wurde gedrückt';
Beachte, dass jede Befehlszeile mit einem Strichpunkt abgeschlossen wird.
Anschließend soll das Programm getestet werden. Dazu muss es zunächst compiliert werden. Dies wird durch Druck auf das "Ausführen"-Symbol (grüner Pfeil) in der Symbolleiste erreicht.
Dadurch wird ein lauffähiges Windowsprogramm erzeugt, das typische Elemente eines Windowsprogrammes zeigt. So kann es mit Hilfe der Maus bedient werden, es kann verschoben, verkleinert, vergrößert oder geschlossen werden...
Aufgabe: Führe das Programm aus und speichere das "Projekt" auf der lokalen Festplatte oder in deinem Arbeitsverzeichnis am FileServer!
Der Projekt-Quelltext hat den typischen Aufbau eines Pascal-Programmes:
Die erste Zeile besteht aus dem reservierten Wort programund dem Projekt-Namen.#
Der Befehl uses bindet die angegebenen Units in das Projekt ein.
Schließlich stehen die Programmbefehle zwischen den reservierten Wörtern begin und end.
Application.CreateForm
Das "Formular" (Programmoberfläche) wird erzeugt.
Application.Run
Das Programm wird gestartet
Delphi stellt zahlreiche Units zur Verfügung, die typische Programmaufgaben ausführen. Auch das selbst geschriebene Pascal-Programm wird als Unit in das Projekt eingefügt (der Quelltext wird dazu als Pascal-Datei mit der Endung *.PAS gespeichert).
Im obigen Beispiel enthält der Editor das Hauptprogramm ("Projekt1") und das Pascalprogramm ("Unit1"). Beide Programme können nach Klick auf die entsprechende "Karteikarte" editiert (verändert) werden.
Sowohl der Projektquelltext als auch der Quelltext des selbst geschriebenen Delphi-Programmes können mit Hilfe des Drucker-Symbols aus der Symbolleiste ausgedruckt werden. In den eigenen Quelltext sollten der Name, das Datum und eventuell ein Hinweis auf die Aufgabe des Programmes (zwischen geschwungene Klammern) eingefügt werden. Damit können die Ausdrucke auch nach längerer Zeit bestimmten Programm(teil)en zugeordnet werden!
Aufgabe: Füge Name und Datum in den Quelltext zwischen geschwungenen Klammern {Autor: N.N, Datum:26. September 1997, Programm: ...}ein und drucke ihn aus!
Eine Unit ist ähnlich aufgebaut wie ein Programm. Die erste Programmzeile bezieht sich auf den Namen der Unit. Nach dem reservierten Pascal-Befehl interface folgt unter Verwendung des Pascal-Befehles uses eine Liste der verwendeten Units, Typen und Variablen. Verwendet man eine bestimmte Komponente aus der Palette, so wird nach dem "uses"-Befehl automatisch der Aufruf der entsprechenden Unit eingefügt.
type
Anschließend werden alle Typen und Methode angegeben
procedure
Prozedur (Unterprogramm), hier eigentlich eine "Methode"
private
"Private" Deklaration von Typen & Methoden
public
"Öffentliche" Deklaration...
var
Anschließend werden alle globalen Variablen angegeben
implementation
Anschließend werden alle Prozeduren (eigentlich Methoden) mit allen Programmzeilen angegeben
Beachte, dass mit jeder Komponente, die in ein Formular "gezogen" wird, eine gleichlautende Prozedur (Methode) in den Quelltext eingefügt wird. Anschließend schreibt man den zugehörigen Programmtext zwischen die (bereits eingefügten) Pascalwörter beginund end. Dieser Programmcode wird ausgeführt, wenn die Kompontente (beispielsweise per MausClick) gestartet wird....
Im obigen Beispiel sollen zwei Zahlen z.B. addiert und das Ergebnis in einem weiteren
Zahlenfeld angezeigt werden. Dazu verwenden wir sogenannte Variable, die
Zahlenwerteund Zeichenketten während des Programmlaufes zwischenspeichern.
unit Unit1; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Edit3: TEdit; procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var zahl1,zahl2,summe:integer; ergebnis:string; begin zahl1:=StrToInt(edit1.text); zahl2:=StrToInt(edit2.text); summe:=zahl1+zahl2; ergebnis:=IntToStr(summe); edit3.text:=ergebnis; end; procedure TForm1.Button5Click(Sender: TObject); begin Form1.Close; end; end.
Wir erkennen:
1. Hinweis: Das "Formular" wird als globale Variable (Instanz) festgelegt. Damit kann von jeder Prozedur auf das Formular zugegriffen werden. Der Typ ist ziemlich kompliziert, da diese Variable alle Variablen und Prozeduren (Methoden) enthält, die in der Typenvereinbarung
TForm1 = class(TForm) angegeben wurden. Später werden wir diese Struktur bei der "Objektorientierten Pro-grammierung" genauer diskutieren.
2. Hinweis: Obwohl der Compiler nicht zwischen Groß-und Kleinbuchstaben unterscheidet, ist es sinnvoll den Quelltext mit Groß- und Kleinbuchstaben besser lesbar zu gestalten. Namen von Typen erhalten ein vorangestelltes großes T. Variablen sollten möglichst "sprechende Namen" aufweisen. Der auf eine spezielle Variable bezogene Typ soll gleichlautend heißen, ...
Aufgabe: Erweitere das Programm, indem du zu den Buttons der anderen Rechenarten die entsprechenden Quelltexte einfügst! Zusätzlich soll neben dem Ergebnis der Name der verwendeten Rechenoperation ausgegeben werden.