von Manfred Hoersch
An Hand des Projektes Pkuerzen.dpr
Hinweis: Um eine genaue Beschreibung des Projektes Pkuerzen.dpr zu erhalten, muss man auf die nachfogende Zeile klicken ! |
Das Bild zeigt die Oberfläche von Delphi, Um ein Bild mit Kommentarfeldern zu sehen, muss man mit der Maus auf das Bild klicken !
Links sieht man den so genannten Objektinspektor. Mit ihm kann man alle
möglichen Eigenschaften der Objekte verändern. Die wichtigsten Standardobjekte sind: - das Textfeld (TEdit)
evt noch die Überschrift ( TLabel) und Menüs (TMenu). Bei den zusätzlichen Objekten findet man noch - das Bild (
TImage) Objektnamen Sehr wichtig ist die richtige Wahl der Namen ! So wurde für die Form Fkuerzen ( F für Form und kuerzen für die Beschreibung
) gewählt. Wird der Name eines Objektes im gesamten Programm überhaupt nicht benutzt, kann man darauf verzichten, das Objekt zu benennen. Delphi wählt ohnehin für jedes erzeugte Objekt einen Namen. Diese Namen sind natürlich überhaupt nicht aussagekräftig. Die Objektliste Alle Objekte der Unit ( hier heißt die Unit kuerzen) werden unter TFkuerzen
aufgelistet. Vergleiche: Zu dem Typ TFkuerzen gehören alle Objekte der Form und sämtliche Prozeduren und
Funktionen.
Wie im
kommentierten Bild bereits erwähnt, werden alle
Objekte der Form automatisch eingefügt. Ändert man den Namen eines Objekts, veranlasst
Delphi augenblicklich die Änderung des Namens in dieser Liste.
Ereignisprozeduren Ein Ereignis ist zum Beispiel Click ( mit der linken Maustaste auf das
Objekt klicken). z.B.
Der Name der Prozedur wird von Delphi erzeugt.
Eigene Prozeduren und Funktionen Die Hauptaufgabe beim Programmieren besteht wie bei Konsolenprogrammen darin, eigene Prozeduren und Funktionen zu schreiben. Diese müssen dann in die Objektliste eingetragen werden. Alle Namen beginnen mit TFkuerzen. (Punkt nicht übersehen !), dann wird der selbsterdachte Namen angehängt. Als Beispiel wird hier die vollständige Funktion ggT gezeigt:
Eine Beschreibung des zugrunde liegenden Euklidischen Algorithmus findet man hier ! Man erkennt, dass bis auf das Namenprefix ( TFkuerzen.) alles ganz genau wie im
Konsolenmodus aussieht.
Das Programm Das eigentliche Programm, das alles zum Laufen bringt, wird von Delphi selbst erzeugt. Es sieht folgendermaßen aus:
Es soll hier kurz beschrieben werden. Wir vereinbaren dem Namen ein P voranzustellen ( P für Programm oder Projekt). Diese kurze Programm wird in der Datei Pkuerzen.dpr gespeichert.
Das Suffix dpr steht für Delphiprojekt. Nötige Dateien:
Oben sind alle Dateien gezeigt, die zum Projekt Pkuerzen gehören. Die
Hauptdatei, die das Programm enthält, ist markiert.
Das vollständige Delphiprojekt Pkuerzen.dpr, inklusive EXE-File
kann herunter geladen werden.
Was gehört zum Projekt ? Um sich einen Überblick zu verschaffen, was alles zum Projekt gehört wählt man den Menü-Punkt Ansicht.
Wählt man dann Units..., öffnet sich ein Fenster, in dem alle Units aufgelistet werden; dazu zählt auch die Projektdatei.
Angezeigt werden alle Dateien mit dem Suffix pas und dpr. Um bei großen Projekten den Überblick zu bewahren, ist eine
sinnvolle
Namengebung unbedingt erforderlich! Die Unit Das gesamte Delphiprojekt besitzt nur ein einziges kleines Programm, welches von Delphi
automatisch erzeugt wird. Eine Unit besteht aus zwei Teilen. Wählt man z.B. Datei®neu®Unit bekommt man folgendes zu sehen:
Bei Niki unter Delphi stand im Programmkopf immer uses Niki. Der Befehl vor bewirkte, dass Niki ein Feld weiterging. Wie das genau
funktioniert war uns ziemlich gleichgültig, Hauptsache Niki ging ein Feld vor. Im implementation
Teil muss aber stehen, wie das genau vor sich gehen soll. Ähnliches gilt für den Gebrauch von Variablen. Variablen, die im interface
erklärt werden sind sozusagen superglobal. Die einzige Variable im interface ist Fkuerzen, also die Form selbst.
Wie benutzt man Delphiobjekte ? Das Textfeld Ez1 besitzt wie jedes Delphiobjekt zahlreiche Eigenschaften. Die meisten sind für uns unwichtig, nur wenige Eigenschaften sind von Bedeutung. Die Eigenschaft TEXT (siehe Objektinspektor) ist wichtig. Dort steht nämlich der Text, den man in das Feld einträgt. Man kann das Feld bereits vor dem Programmstart füllen, man kann in dieses Feld aber auch schreiben, wenn das Programm läuft. Will man auf eine Eigenschaft zugreifen, muss man zuerst den Namen angeben und dann die
Eigenschaft anhängen: Kompliziert ? Also ! Solange man eine Form hat und alle Prozeduren oben in die Objektliste eingetragen hat, kann nichts schief gehen. Das Objekt Ez1 wird erkannt. Und Ez1.Text ist der Text, der im Textfeld drinsteht ! Wie kann ich diesen Text lesen, wenn das Programm läuft ? Im Konsolenmodus war ein readln(z1) erforderlich, um die Variable z1 (1.Zähler)
einzulesen.
StrToInt wandelt einen String in eine Integer-Zahl um. Z.B.: StrToFloat wandelt einen String in eine Real-Zahl um. Z.B.: StrToFloatF erlaubt eine formatierte Umwandlung. Genauere Informationen findet man in der Hilfe von Delphi. val ist keine Funktion sondern eine von Turbo Pascal her
bekannte Prozedur. Für das Projekt Pkuerzen ist StrToInt die beste Lösung. Das erste Problem wäre damit gelöst ! Statt readln(z1) heißt es jetzt:
Anmerkung: Wie kann man ein Ergebnis einer Rechnung während der Laufzeit in ein Textfeld schreiben lassen ? Natürlich will man auch bei Delphi-Programmen eine Ausgabe machen. In der
Konsolenanwendung benutzen wir dazu die Prozeduren write(..) und writeln(..).
IntToStr wandelt eine Integer-Zahl in einen String um. Entsprechend verwendet man FloatToStr bei Real-Zahlen. str ist keine Funktion sondern eine von Turbo Pascal her
bekannte Prozedur. Statt writeln(z2) heißt es jetzt:
StrToInt, StrToFloat, IntToStr und FloatToStr
sind die wichtigsten Befehle. Sie lösen readln und writeln ab.
Schlussbemerkung Nunmehr können wir mit Delphi alles machen, was wir bisher in der Konsolenanwendung zustande gebracht haben, und vielleicht noch vieles mehr ! Außerdem sehen die Delphi-Anwendungen viel schöner aus, oder ? Alles verstanden ? Falls auch diese Informationsquelle versagt, kann man ja auch mal den Lehrer fragen ! Hoe , Lippe im Mai 2000 Hoe, Lippe im Mai 2003 |