28
Einführung in die Programmierung mit Delphi 23.04.2009 Helmut Paulus Max-Planck-Gymnasium Trier

Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

  • Upload
    phungtu

  • View
    219

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Einführung in die Programmierungmit Delphi

23.04.2009Helmut Paulus Max-Planck-Gymnasium

Trier

Page 2: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Leitidee

• Probleme beim Einstieg in die Programmierung mit Delphi

– Auch einfachste Programme sind zunächst schwer zu durchschauen.

– Das Zusammenspiel zwischen GUI-Objekten und algorithmischen Elementen ist unklar.

• Vorschlag: Didaktisches Konzept

– Von Anfang an objektbasierte Erklärungsmodelle benutzen, um das Verständnis der recht komplexen Delphi-Programme zu erleichtern.

• Vorteile

– Die "Logik der Programme" wird vereinfacht dargestellt und somit der Quelltext strukturell geordnet.

– Vorbereitung wichtiger Konzepte der objektorientierten Modellierung und Programmierung, die später vertieft werden.

2

Die Grundideen und die Terminologie der Objektorientierung von Anfang an korrekt und konsistent verwendet werden.

Page 3: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Einstieg in die Programmierung

• Motivation

– Vergleich statische Webseiten mit Schülern bekannter Programmen

– Webseiten sind statisch

– Programme haben ein dynamisches Verhalten, das durch das Grundschema"Eingabe - Verarbeitung - Ausgabe “

• Schwerpunkte EVA-Grundschema Objekt-Terminologie Ereignisverarbeitung Aufbau eines Programms

• Unterrichtsziele

Aufbau von (Delphi-) Programme verstehen

Systematische Programmentwicklung

3

Page 4: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Experimente mit vorgegebenen Programmen

• Beispiele Tag-Nacht-Programm

(siehe auch: Damann, Wemßen: Objektorientierte Programmierung mit Delphi, Band 1. Klett Verlag 2001.) …

• Erkundung der Entwicklungsumgebung (Delphi-IDE)– Laden und Starten eines Programms,– Änderungen am Formular

Verschieben von Button-Komponenten und Image-Komponenten, Veränderungen mit dem Objektinspektor (z. B. Farbeinstellungen).

• Einführung geeigneter Sprechweisen– Graphische Benutzungsoberflächen (GUI)– Objekt-Terminologie (Objekt, Klasse, Attribut, Attributwert) zu benutzen

Vergleiche: Materialien zur Weiterbildung

– evtl. Programmverhalten mit Konzepten der zustandsbasierten Modellierung beschreiben: Zustände (Tag / Nacht) - Attributwerte von Objekten Zustandsänderungen durch Ereignisse (Button ... Drücken)

• Analyse des Quelltextes– Identifizierung der Bereiche, die für das beobachtete Verhalten verantwortlich sind – Experimente mit kleineren Veränderungen belegen diese Vermutungen

(z. B. Attributwerte). Deklarationsteil vorerst unverändert

Analyse eines einfachen vorgegebenen Delphi-Programms

4

Page 5: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Graphische Benutzungsoberfläche

5

Das Anwendungsfenster enthält eine Vielzahl von Objekten.(Schaltflächen, Bilder, Eingabefelder …)

Tag/Nacht

Page 6: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

GUI-Objekte

Aufbau einer Benutzungsoberfläche mit Hilfe von so genannten GUI-ObjektenGUI : Graphical User Interface

6

GUI-Objekt

GUI-Objekt

GUI-Objekt

GUI-Objekt

GUI-Objekt

Mit Hilfe des Objektinspektors kann man die Eigenschaften der Objekte einsehen und verändern.

Page 7: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

GUI-Objekte

GUI-Objekte haben einen Namen und werden einer Klasse zugeordnet. Die Klasse legt dabei den Typ des Objekts fest.

7

Der Objektinspektor zeigt Name und Klasse des ausgewählten Objekts an.

PAnzeige : TPanel

BtTag : TButton

ImRudi: TImage

BtHeiss : TButton

GUI : TGUI

Anwendungs-fenster

Page 8: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Zustand eines Objektes

Objekte bestehen aus einer Vielzahl von Attributen (Eigenschaften). Ihre Werte beschreiben den aktuellen Zustand des Objekt.

8

Name

Attributwerte

Klasse

Attribut

Page 9: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Objekthierarchie

Das Formular (Fenster) GUI verwaltet alle anderen GUI-Objekte.

9

Die Formulardatei uGUI.dfm speichert die Attributwerte der Objekte.

object GUI: TGUI

Left = 476

Top = 417

Width = 396

Height = 237

Caption = 'Rudi läuft'

object Btlauf: TButton

Left = 96

Top = 160

Width = 75

Height = 25

Caption = 'laufe‘

OnClick = BtlaufClick

end

object ImRudi: TImage

Left = 24

Top = 72

Width = 41

Height = 41

Picture.Data = {…}

end

end

Das Formular GUI enthält alle anderen Objekte als

Unterobjekte

Page 10: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Objektzustände verändern

10

PAnzeige.Caption := 'Mir ist heiß!!!';

Wertzuweisung:

Attributwerte können mit Hilfe von Wertzuweisungen verändert werden.

PAnzeige : TPanel

Caption = ‘Rudi läuft‘

PAnzeige : TPanel

Caption = ‘Mir ist heiß‘

Objektzustand vorher: Objektzustand nachher:

Ereignisgesteuerte Veränderung

Ein Ereignis ist eine Zustandsänderung in einem Objekt, die von Interesse ist und daher mit einer Prozedur zur Ereignisverarbeitung verknüpft werden kann. (K. Merkert)

Klick auf den Button mit der Aufschrift "Tag" löst das Ereignis „BtTag.onClick" aus

procedure TGUI.BtTagClick(Sender: TObject);

begin

GUI.Color := clWhite;

PAnzeige.Caption := ‘Rudi läuft';

end;

EreignisverarbeitungEreignis

Page 11: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Delphi-Quelltext

type

TGUI = class(TForm)

ImRudi: TImage;

Btlauf: TButton;

Bterhitzt: TButton;

P_Anzeige: TPanel;

BtTag: TButton;

BtNacht: TButton;

procedure BtlaufClick(Sender: TObject);

procedure BterhitztClick(Sender: TObject);

procedure BtTagClick(Sender: TObject);

procedure BtNachtClick(Sender: TObject);

private { Private-Deklarationen}

public { Public-Deklarationen}

end;

var GUI: TGUI;

Analyse eines einfachen vorgegebenen Delphi-Programms

11

Deklaration eines Formulars

mit all seinen GUI-Objekten

Page 12: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Delphi-Quelltext

implementation

{$R *.DFM}

procedure TGUI.Bt_erhitztClick(Sender: TObject);

begin

Im_Rudi.Picture.LoadFromFile(‘Laeufer3.ico');

PAnzeige.Caption := 'Mir ist heiß!';

end;

procedure TGUI.Bt_TagClick(Sender: TObject);

begin

GUI.Color := clWhite;

end;

procedure TGUI.Bt_NachtClick(Sender: TObject);

begin

GUI.Color := clBlack;

end;

12

Implementierungder Ereignis-verarbeitung

Analyse eines einfachen vorgegebenen Delphi-Programms

Page 13: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Ein erstes Programmierprojekt

• Anwendung der zuvor gewonnenen Erkenntnisse in einem neuen Kontext

• Bedienung der Entwicklungsumgebung

– Neues Projekt erstellen, Abspeichern in einem neuen Ordner, ...

– Dateien eines Delphi-Projekts (Kurze Betrachtung)

Delphi-Projekte haben an eine komplexe Struktur.

13

Von Beginn an Regeln beachten, um Probleme mit dieser Komplexität zu vermeiden.

• Für jedes Projekt einen eigenen Projektordner anlegen!

• Projektdatei und Formularunit sofort mit geeigneten Namen speichern!

• Namenskonvention für GUI-Objekte verbindlich vereinbaren!

• Vereinbarungen zur Strukturierung des Quelltextes treffen! Z. B. Styleguides. (http://www.delphi-treff.de/delphi-styleguide/)

Nützliche Konventionen:

Beispiel: Simulation einer Ampel

Page 14: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Projekt: Simulation einer Ampel

14

Zur Darstellung der Ampeln stehen Bilder zur Verfügung.

In jeder Ampelphase wird nur ein Bild angezeigt , die anderen sind nicht sichtbar.

Mit Hilfe von Schaltflächen können die Phasen gewechselt werden.

procedure TGUI.Bt_RotClick(Sender: TObject);

begin

ImRot.Visible := true;

ImRotGelb.Visible := false;

ImGruen.Visible := false;

ImGelb.Visible := false;

end;

Ereignisbearbeitung:Ereignis:

Schaltfläche BtRot wird gedrückt

GUI-Objekte:GUI : TGUIImRot : TImage…BtRot : TButton…

Dateien:uGUI.pas – FormularunitAmpel.dpr – ProjektdateiAmpel.exe – Ausführbares

Programm

Page 15: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Einführung des Variablenkonzepts

• Einführung eines einfaches Verarbeitungsmodells (EVA) Lokale Variablen als Zwischenspeicher:

– Eingabe: der Variable wird der aktuelle Attributwert zugewiesen

– Verarbeitung: Änderung des Variablenwerts

– Ausgabe: dem Attribut wird der neue Variablenwert zugewiesen

• Zur Implementierung müssen folgende Punkte geklärt werden: – Wo und wie wird die Variable deklariert?

– Was sind Datentypen? Wozu dienen sie? Welche gibt es?

– Wie erfolgen die Typumwandlung?• Zeichenkette Zahlentyp

• Zahlentyp Zeichenkette

15

Weitere einfache Projektbeispiele:

Einfache Ein- / Ausgabe-Situationen wie

Body-Mass-Index, Währungsumrechner, Maßeinheiten-Umrechner, Promille-Rechner, einfacher Rechner …

Erweiterung des Programms Tag/Nacht: Rudi läuft über den Bildschirm

Page 16: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

EVA-Prinzip

• GUI-Objekte sind dazu da um Daten anzuzeigen bzw. zu kontrollieren. Dazu speichern sie sie natürlich auch. Die doppelte Buchführung erscheint zunächst wenig sinnvoll. Im Hinblick auf spätere Vertiefungen sollten von Anfang an eine GUI-Objekte und Datenmodell getrennt werden.

16

procedure TGUI.BtlaufeClick(Sender: TObject);

var

xPos : integer;

begin

//Eingabe - Übernahme der Anzeige

xPos := ImRudi.left;

//Verarbeitung der Daten

xPos := xPos + 5;

//Ausgabe – Aktualisierung der Anzeige

ImRudi.left := xPos;

end;

Viele Eingabe – Verarbeitung – Ausgabe-Systemekönnen auf diese Weise mit Hilfe von lokalen Variablen realisiert werden.

Rudi läuft über den Bildschirm:

Mögl. Erweiterungen:• Mehrere Läufer• Wettrennen ( Schrittweite zufallsgesteuert, Ablauf Timergesteuert)

Die lokale Variable xPos als Zwischenspeicher der aktuellen Position.Sie existiert nur während der Ausführung der Prozedur.

Page 17: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Entwicklung eines einfachen Programms

17

BMI berechnen

procedure TGUI.BtberechnenClick(Sender:

TObject);

var

Gewicht, Groesse, BMI : real;

begin

//Eingabe

Gewicht := StrToFloat(EdGewicht.Text);

Groesse := StrToFloat(EdGroesse.Text);

//Verarbeitung

BMI := Gewicht/Groesse/Groesse;

//Ausgabe

PAnzeige.Caption := FloatToStr(BMI);

end;

Anmerkungen:

procedure TGUI.BtloeschenClick(Sender:

TObject);

begin

EdGewicht.Clear;

EdGroesse.Clear;

PAnzeige.Caption := '';

end;

Eingabefelder zurücksetzen

Objektmethode

• Zahlentypen• Typumwandungsfunktion• GUI-Objekte haben auch Fähigkeiten

(Methoden)?

Page 18: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Einführung der Kontrollstruktur "Fallunterscheidung"

• Logik mit Hilfe eines Struktogramms erarbeiten

• Ablauf mit Flussdiagrammveranschaulichen

• Syntaktische Details und Implementierung klären

18

Beim Tag-Nacht-Programm sollen die Tage gezählt werden, wenn ein Übergang von Nacht auf Tag erfolgt. Die Tageszahl soll in einem Hinweis-Panel angezeigt werden.

Erarbeitungsschritte:

Werkzeuge:Structorizer: http://structorizer.fisch.lu/index.php

StruktEd:

PAPDesigner: http://www.gso-koeln.de/papdesigner/Hauptseite.html

Page 19: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Implementierung

Erweiterung:

• zweiseitige Fallunterscheidung

• Schachtelung von Fallunterscheidungen

Beispiele:

• Rudi läuft nur tagsüber

• BMI-Erweiterung (geschlechts- und altersabhängige Rückmeldung)

• Ampelschaltung mit nur einem Schalter / Ampel mit Shapes

• Schaltjahresprüfung

19

procedure TGUI.BtTagClick(Sender: TObject);

var

TagZahl : integer;

begin

if GUI.Color = clBlack then

begin

TagZahl := StrToInt(PTagAnzeige.Caption);

TagZahl := TagZahl + 1;

PTagAnzeige.Caption := IntToStr(tagzahl);

GUI.Color := clWhite;

Caption := 'Tag';

end;

end;

Startwert für die Tageszahl im Objektinspektor einstellen

Page 20: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Ein erstes Programmierprojekt

Durchführung:

• Anforderungen in einem Pflichtenheft genau spezifizieren

• Ergebnisse werden parallel zur Erstellung dokumentieren

– Kommentierte Diagramme (NSD / PAP)

– Beschreibung der Algorithmen

Gütekriterien

• Benutzerfreundlichkeit achten

• Verständlichkeit des Quelltextes

20

Entwicklung eines interaktives Spiels

Ziele:

• Anwendung des bisher Gelernten im größeren Zusammenhang

• Erste Erfahrungen mit systematischer Softwareentwicklung

(vgl. etwa Einführung in die Software-Entwicklung mit Delphi - Teil 1)

Page 21: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Projekt 17 und 4

21

Aufgabe:

Es ist ein Programm zu entwickeln, das das bekannte Kartenspiel simuliert.

Anforderungen1. Spielkarten werden durch einen Würfel ersetzt

(Wertbereich [1;...;6]).

2. Es werden Zahlen gewürfelt und aufsummiert. Der Spieler kann nach jedem Spielzug entscheiden, ob er aufhört oder weiter spielen will.

3. Ist die Summe größer als 21, so hat der Spieler verloren. Hört der Spieler bei einer Summe kleiner oder gleich 21 auf, wird noch eine Zahl gewürfelt.Ist die neue Summe immer noch kleiner oder gleich 21, so hat der Spieler verloren, andernfalls gewonnen.

4. Alle Ausgaben werden gelöscht, wenn ein neues Spiel

begonnen wird. (Benutzerfreundlichkeit)

Prototyp:

Problem:Eingabe der Spieldaten in lokale Variablen aus den GUI-Objekten ist ineffektiv!!!

Page 22: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Lokale und globale Variablen

• Realisierung eines "internen Datenmodell“ mit globalen Variablen (als private Attribute des Formulars)

• Es stellt die Vorstufe zu eigenständig agierenden Objekten dar.

• Weitere Übungen ergeben sich im Kontext zustandsbasierter Modellierung, z. B. durch Einführung einer Zustandsvariablen für die einzelnen Spielphasen.

22

Bei komplexeren Systemen ist es günstig, ein von der GUI getrenntes Datenmodell zu entwickeln.

typeTGUI = class(TForm)

{Steuerelemente} procedure BtNeuClick(Sender: TObject);procedure BtZahlClick(Sender: TObject);procedure BtSpielbeendenClick(Sender: TObject);

private{ Private-Deklarationen}Punkte : integer; Ergebnis : string; public{ Public-Deklarationen}

end;

Internes Datenmodell

procedure TGUI.BtZahlClick (Sender: TObject);var

Zufall : integer;begin

//Eingabe Zufall := random(6) + 1;//Verarbeitung Punkte := Punkte + Zufall;…

end;

Lokale Variablen (temporäre Daten)

Quelltext

Page 23: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Projekt Zahlenraten

Aufgabe:

Es ist ein Programm zu entwickeln, das ein Zahlenratespiel simuliert.

Anforderungen:

1. Der Computer bestimmt eine Zufallszahl (1..100), die der Spieler zu erraten hat.

2. Der Spieler hat er beliebig viele Versuche.

3. Nach jeder Zahleneingabe wird angegeben, ob die Zahl zu groß oder zu klein ist.

4. Hat der Spieler die Zahl erraten, so wird die Anzahl der Versuche und eine Bewertung ausgegeben.

5. Alle Ausgaben werden gelöscht, wenn ein neues Spiel begonnen wird. (Benutzerfreundlichkeit)

23

Prototyp:

Page 24: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Implementierung

24

typeTGUI = class(TForm)

… BtEingabe : TButton;BtNeu : TButton;

…procedure TGUI.BtEingabeClick(Sender: TObject);

private{ Private-Deklarationen}RateZahl : integer; Versuchszahl : integer;

public{ Public-Deklarationen}

end;

Auswertung einer ZahleneingabeInternes Spieldatenmodell

Zahlen raten

Testzahl überprüfen

{ Eingabe: testzahl aus 1..100 }

Versuchzahl Versuchszahl + 1

testzahl = ratezahl?

ja nein

kommentar "richtig"

testzahl > ratezahl?

ja nein

kommentar "zu groß" kommentar "zu klein"

{ Ausgabe: Kommentar, Versuchszahl }

1. Baue eine Sicherheitsprüfung ein, dass die Eingabe einer Rate-Zahl nicht über der Feldgröße und nicht unter 0 liegen darf.

2. Erweitere das Programm so, dass die Feldgröße über ein Edit-Feld eingelesen wird.

Erweiterungen

Page 25: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Einführung der Kontrollstruktur "Wiederholung"

Schwerpunkte

• solange-Schleife

• Darstellung der Semantik mit einem Flussdiagramm

• Darstellung der Struktur mit einem Struktogramm

• Syntax einer while-Anweisung

• verschiedene Schleifentypen für spezielle Situationen

25

Einstiegsbeispiel:Wann werde ich Millionär? (Kapitalentwicklung)

Anfordungen:Nach Eingabe von Anfangskapitals und Zinssatzes wird berechnet, nach wie viel Jahren das Kapital einen bestimmten Endbetrag erreicht hat. Die Zinsen werden jährlich gutgeschrieben (Zinseszins).

Page 26: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Projekt: Wann werden ich Millionär

26

PAP Struktogramm Delphi-Syntax

while Kapital < Zielkapital dobegin… Wiederholungsblockend;

ImplementierungAlgorithmus

Page 27: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Kontrollstrukturen

27

• Es folgen weitere Beispiele zur Übung der while-Schleife.

• Vertiefende Übungen (je nach Interesse):

Entwicklung von Populationen

Math. Algorithmen: Teilermengen, Primzahlentest, Heron, 3n+1 Problem…

Page 28: Grundlagen des Internets - · PDF fileLeitidee • Probleme beim Einstieg in die Programmierung mit Delphi – Auch einfachste Programme sind zunächst schwer zu durchschauen. –

Links und Literator

• E. Modrow: Informatik mit Delphi, Band 1/2, Dümmler-Stam 1998-2000.

• P. Damann, J. Wemßen: Objektorientierte Programmierung mit Delphi, Band 1. Klett-Verlag 2001.

• U. Bänisch: Praktische Informatik mit Delphi, Band 1/2. Cornelsen 2001.

• Frischalowski: Delphi 5.0, Band 1/2, Herdt-Verlag 1999.

• Pohl: Schülerübungen / Klausuren in Delphi, Heft 1/2, Verlag J. Pohl 1997-2001.

• K. Merkert:http://hsg.region-kaiserslautern.de/faecher/inf/material/delphi/index.php

• R. Mechling:http://www.gk-informatik.de/

• K. Heidler:http://www.friedrich.fr.schule-bw.de/delphi/delphi.htm

• Hessischer Bildungsserver:http://lernen.bildung.hessen.de/informatik/

• S. Spolwig: http://oszhdl.be.schule.de/gymnasium/faecher/informatik/delphi/index.htm

• Weitere Hinweise unter:

• http://www.delphi-source.de

• Einsteiger-Tutorial

• http://www.delphi-treff.de/content/tutorials/einsteigerkurs/

28