Upline: Infos & Dokus Programmierung Delphi

Delphi HowTo Teil 1


Delphi lernen - Wie fängt man an?

Vor ein paar Jahren hätte ich darauf noch geantwortet: "lerne erstmal Pascal, dann kannst Du schon fast Delphi", aber heute ist das pure Pascal nicht mehr wirklich dazu geeignet, irgendwen vom Hocker zu reißen. Unter Linux ist die Programmierung in Pascal leider nicht besonders verbreitet. Unter Windows ist das pure Pascal mehr oder weniger Geschichte. Reine Konsolenanwendungen oder Systemprogramme ohne GUI werden nur selten entwickelt und das wäre mehr oder weniger das einzige, was man mit reinem Pascal ohne Objektorientierung noch für Windows basteln könnte.


Grundlagen Delphi Objekte

Es ist wirklich ganz leicht, zügig ein wenig Verständnis für Objekte und wie man diese anspricht zu bekommen. Nach dem Start von Delphi erhält man alle nötigen Fenster, fangen wir an und werfen zuerst einen Blick auf das Menü oben. Dort ist ein Karteisystem mit integrierten Objekten, beginnend bei Standard. Wir nehmen uns zwei Buttons (das Ding mit dem "OK" drauf) und platzieren diese auf der "Form1". Dadrunter packen wir noch 2 Labels (das große "A"-Symbol) und eine Checkbox (das rechts neben dem Button). In dem links zu sehenden Objektinspector kann man die meisten Eigenschaften eines visuellen Objektes ändern. Wir markieren jetzt den "Button1" und benennen ihn in "Aktion" um, "Button2" benennen wir in "Reaktion" um und stellen die Eigenschaft "Enabled" auf "false".. Danach stellen wir noch das Form1 auf 300x200 Pixel (Form1 markieren und ClientHeight und ClientWidth anpassen). Anschließend machen wir einen Doppelklick auf die beiden Buttons und springen somit jeweils sofort in den Quelltext, wo automatisch zwei neue Prozeduren in der Form procedure TForm1.Button1Click(Sender: TObject); und einige Einträge unter type TForm1 = class(TForm) erstellt werden. Falls wir eine solche automatisch erstellte procedure wieder los werden wollen, muß diese nur leer sein. Bei einem anschließenden Compilieren werden solche leeren Prozeduren automatisch wieder entfernt.
Um zu veranschaulichen, was wir mit diesem Beispiel erreichen wollen, vorab die Screenshots dazu:

Für unser erstes Beispiel fehlt jetzt nur noch ein wenig Quellcode - die Typdefinitionen sollten alle vorhanden sein, deshalb zeige ich hier nur den Inhalt der beiden Prozeduren:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.Caption:='Der Einstieg in Delphi';
 Label1.Left:=20;
 Label1.Top:=52;
 Label2.Caption:=' ist ganz einfach!';
 Label2.Left:=120;
 Label2.Top:=52;
 Checkbox1.Enabled:=false;
 Checkbox1.Checked:=true;
 Button1.Enabled:=false;
 Button1.Left:=20;
 Button1.Top:=20;
 Button2.Enabled:=true;
 Button2.Left:=120;
 Button2.Top:=20;
 Form1.Caption:='Delphi-Übung';
 Form1.Left:=10;
 Form1.Top:=10;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Label1.Caption:='Label1';
 Label1.Left:=8;
 Label1.Top:=40;
 Label2.Caption:='Label2';
 Label2.Left:=88;
 Label2.Top:=40;
 Checkbox1.Enabled:=true;
 Checkbox1.Checked:=false;
 Button1.Enabled:=true;
 Button1.Left:=8;
 Button1.Top:=8;
 Button2.Enabled:=false;
 Button2.Left:=88;
 Button2.Top:=8;
 Form1.Caption:='Form1';
 Form1.Left:=192;
 Form1.Top:=107;
end;
Damit dürfte die erste Hürde genommen sein und wir wissen jetzt, wie man Texte ausgeben kann, kennen einige der wichtigen Eigenschaften und wie man diese vor dem Programmstart bzw. zur Laufzeit ändern kann. An dieser Stelle sollte man ruhig noch ein wenig herumprobieren, z.B. ist die Ausrichtung vom Label2 nach dem Klick auf den Aktion-Button noch nicht ganz korrekt. Durch die sich überlappenden Textfelder wird das "i" von Delphi abgeschnitten. Wer mag, kann auch gleich noch mit den Eigenschaften Font oder Visible herumexperimentieren.
Dieses 1. Programm war noch nicht weiter schwierig, wir haben dafür immerhin nicht einen einzigen Pascal-Befehl eintippen müssen, sondern nur Objekteigenschaften geändert. Dabei haben wir folgende syntaktische Feinheiten verwendet:
  • jede procedure erhält ihren Namen (in unserem Fall automatisch generiert) und eine Parameterliste (hier ebenfalls automatisch) und der eigentliche Quelltext wird mit begin und end eingeklammert
  • jede Befehlszeile wird mit einem ; abgeschlossen, Ausnahmen (einige werden später erklärt) sind:
    • begin und repeat
    • while ... do, for ... to ... do, if ... then
    • vor else ist das Semikolon verboten(!)
    • vor end und until ist das Semikolon nicht zwingend erforderlich, man sollte es aber zur Vermeidung von Fehlern mitschreiben
  • spricht man Objekte und deren Eigenschaften/Methoden an, so werden diese namentlich durch einen Punkt getrennt
  • Wertzuweisungen werden mit dem mathematischen Definitionszeichen := durchgeführt
  • Strings (z.B. Objekt.Caption) werden in einfachen Anführungszeichen angegeben
Weiter geht's mit einer Erklärung der wichtigsten Eigenschaften des Formular-Objektes, von denen wir oben bereits einen Teil verwendet haben.

Download

Der Sourcecode zu diesem 1. Beispiel der Delphi HowTo.