Von Pascal zu Delphi Eine Einfhrung in die











































































- Slides: 75
Von Pascal zu Delphi Eine Einführung in die Entwicklung ereignisgesteuerter Programme Gregor Noll 2005
Delphi für die Schule ? Delphi setzt die Tradition von Pascal fort und erweitert sie um moderne Sprachkonzepte Ansprechende Benutzungsschnittstelle bei der Programmentwicklung bei der Programmausführung Unterstützung der Programmentwicklung visuelle Komponentenbibliothek VCL kontextsensitives Hilfesystem Debugger automatische Programmergänzung Objektorientierung stets präsent: Objekte - Methoden - Ereignisse ein Einstieg ist ohne vertiefte Kenntnisse der OOP möglich G. Noll 2005 2
Versionen 1995 Delphi 1 16 -Bit Compiler für Windows 3. x Plattform 2002 Delphi 6 und Delphi 7 Personal - Professional - Enterprise - Architect 32 -Bit Compiler (seit Delphi 2) Klassenbibliothek für Cross-Plattform-Entwicklung Komponenten für Internet und Web-Service Unterstützung von UML (Vers. 7 ab Enterprise) 2005 Delphi 2005. Net-Version G. Noll 2005 3
Schulversionen Delphi 3 Professional vertrieben mit dem Buch "Delphi für Kids" (ca. 25 Euro) im mitp-Verlag Bonn Delphi Personal Vers. 7 auf der Begleit-CD zur c't 8/2004 Vers. 2005 auf Begleit-DVD PC-Magazin 5/2005 kostenlose Registrierung bei Borland erforderlich Schulversionen im Handel z. B. Delphi Professional Klassenraum-Lizenz 20 Plätze ca. 650 € G. Noll 2005 4
Wir starten. . . mit der Entwicklung eines Simulationsprogramms Die Entwicklung der Weltbevölkerung schreitet rasch voran: Im Jahr 1999 wurde die 6 Milliardengrenze überschritten; zur Zeit wächst die Weltbevölkerung jährlich um ca. 1, 3 %. Kann das so weitergehen? Mit Hilfe eines kleinen Programms wollen wir die jährliche Entwicklung der Weltbevölkerung verfolgen. (vgl. K. Becker - "Ereignisgesteuerte Programmierung" auf informatikag. bildung-rp. de/html/weiterbildung_viii__2_. html) Wir brauchen: G. Noll 2005 n Ein- und Ausgabemöglichkeiten n Etwas zum Starten der Berechnung Benutzungsschnittstelle 5
Benutzungsschnittstelle Graphical User Interface Label Edit Button Wir gestalten das GUI mit der Delphi Entwicklungsumgebung - visuelle Programmierung G. Noll 2005 6
Entwicklungsumgebung Delphi 6 Komponentenpalette Programmstart Quelltextfenster Objektinspektor Formular G. Noll 2005 7
Öffnen Sie. . . Delphi und seine Entwicklungsumgebung Speichern Sie, bevor Sie etwas verändern, das von Delphi generierte Projekt sofort mit Datei - Alles speichern in einen eigenen Ordner mit einem geeigneten Namen für das Projekt Es werden zwei Dateinamen vorgeschlagen unit 1. pas und project 1. dpr, die Sie übernehmen oder auch umbenennen können. Die beiden Namen müssen verschieden sein. Das neue Projekt ist direkt ein lauffähiges Programm. Wenn Sie es starten, erzeugt Delphi im Projektordner eine exe-Datei und auf dem Bildschirm eine typisches Windows-Fenster G. Noll 2005 8
Projektaufbau Von Pascal her erwarten wir eine Struktur aus Hauptprogramm und Units. Auch Delphi. Projekte sind so aufgebaut G. Noll 2005 9
GUI-Objekte erzeugen Positionieren Sie einige Komponenten auf das Formular und beobachten Sie dabei mit dem Objektinspektor, wie Delphi automatisch Bezeichnungen und weitere Eigenschaften vorgibt Aktivierung der Komponente anschließend auf das Formular klicken G. Noll 2005 10
Bezeichnungen Delphi vergibt automatisch Namen an die GUI -Objekte, z. B. Label 1, Button 2 Es ist besser, eigene Bezeichnungen zu verwenden Im Objektinspektor über die Eigenschaft Name z. B. : BInit B für Button GBAuswahl GB für Groupbox LTitel L für Label usw. Die Aufschriften von Objekten lassen sich anschließend über ihre Caption - Eigenschaft im Objektinspektor verändern oder später zur Laufzeit zuweisen G. Noll 2005 11
Übung 1 a Erstellen Sie das GUI für unser Simulationsprogramm LTitel LJahr EJahr LAnzahl EAnzahl BInit BWeiter Schauen Sie sich den von Delphi generierten Quelltext an G. Noll 2005 12
Quelltext unit Unit 1; interface uses Windows, Messages, Sys. Utils, Classes, Graphics, Controls, Forms, Dialogs, Std. Ctrls; type TForm 1 = class(TForm) LTitel: TLabel; BInit: TButton; BWeiter: TButton; LJahr: TLabel; LAnzahl: TLabel; EJahr: TEdit; EAnzahl: TEdit; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form 1: TForm 1; Klassendefinition Objekte Objekt implementation {$R *. DFM} G. Noll 2005 end. 13
Objekte und Klassen In unserem Programm begegnen wir verschiedenen Objekten: Objektname Klassename EJahr: TEdit EAnzahl: TEdit Text = ´´ Left = 208 Top = 80 Top = 120 . . . BInit: TButton . . . Jedes Objekt und jede Klasse ist über den Namen identifizierbar. Objekte mit gleichem Aufbau werden zu Klassen zusammengefasst. G. Noll 2005 14
Objekte Objekt EJahr: TEdit Attribut Text = ´´ Left = 208 Top = 80 Attributwert . . . Der Aufbau eines Objekts wird u. a. über die Attribute (Eigenschaften) bestimmt. Die Attributwerte legen den aktuellen Objektzustand fest. G. Noll 2005 15
Modellierung: Daten Entprechend der Aufgabe legen wir die Daten und ihren Datentyp fest: Informationen: Im Jahr 1999 wurde die 6 Milliardengrenze überschritten; zur Zeit wächst die Weltbevölkerung jährlich um ca. 1, 3 %. G. Noll 2005 Modellierung: const p = 1. 3; var Jahr : integer; Anzahl : real; 16
Modellierung: Operationen Für folgende Operationen formulieren wir jeweils passende Prozeduren Die Anfangspopulation (1999: 6. 0 Mrd. ) wird festgelegt procedure init. Population; begin Jahr : = 1999; Anzahl : = 6. 0; end; Die nächste Population wird berechnet procedure naechste. Population; begin Jahr : = Jahr + 1; Anzahl : = Anzahl + p/100*Anzahl; end; G. Noll 2005 17
Übung 1 b Implementieren Sie die Daten und Operationen im Delphi-Quelltext Überprüfen Sie, dass das Projekt weiterhin compilierbar und lauffähig ist Welcher Teil des Programm fehlt noch? G. Noll 2005 18
Programmablauf Ein Delphiprogramm reagiert auf Ereignisse lassen sich auslösen u. a. über Maus oder Tastatur On. Click Klicken auf ein Objekt mit der Maus On. Change eine Eingabe wird verändert kein linearer Programmablauf dies erfordert für Pascal Gewohnte ein Umdenken beim Programmentwurf Algorithmen, wie z. B. Sortierverfahren verlieren dennoch nicht an Bedeutung G. Noll 2005 19
Ereignisbehandlung Die Reaktion auf Ereignisse geschieht mit Ereignisbehandlungsmethoden (EBM) Sie lassen sich über das Formular oder den Objektinspektor den Objekten zuordnen Verschiedene Objekte können dieselbe EBM erhalten Kleinere Algorithmen lassen sich unmittelbar in der EBM eines Objektes unterbringen. Übersichtlicher wird es, wenn wir die Algorithmen als eigenständige Prozeduren definieren und gegebenenfalls sogar in eigene Units auslagern (Model. View. Controller-Konzept) G. Noll 2005 20
Ereignisbehandlungsroutinen Ein Doppelklick auf ein Objekt führt zum Quelltext der EBM des Objekts Delphi legt das zugehörige Gerüst an und verankert es in der Formulardefinition Keine eigenständige Veränderungen an den Schnittstellen vornehmen! Leere Prozeduren werden automatisch gelöscht G. Noll 2005 21
Ereignisse In unserem Simulationsprogramm wollen wir zwei Ereignisse behandeln: Benutzeraktion bzw. Ereignis Programmreaktion Mausklick auf init-Button Die Anfangspopulation (1999: 6. 0 Mrd. ) wird festgelegt und angezeigt Mausklick auf >-Button Die nächste Population (jeweils nach einem Jahr) wird berechnet und angezeigt Für die Anzeige von Daten muss ein Datenaustausch mit den GUI-Objekten erfolgen G. Noll 2005 22
Datenaustausch mit GUI-Objekten Unsere GUI-Objekte verwenden Daten des Typs string Numerische Daten werden deshalb konvertiert Variablen GUI-Objekte EJahr. Text : = Int. To. Str(Jahr); EAnzahl. Text : = Float. To. Str(Anzahl); Variablen Jahr Anzahl GUI-Objekte : = Str. To. Int(EJahr. Text); : = Str. To. Float(EAnzahl. Text); Formatierte Ausgabe: Float. To. Str. F() G. Noll 2005 - meist ausreichend ist hier Float. To. Str. F(zahl, ffnumber, 8, 2) 23
Übung 1 c Ergänzen Sie den Quelltext um die noch fehlenden Ereignisbehandlungsmethoden Ergänzen Sie das Programm um weitere Buttons G. Noll 2005 Benutzeraktion: Programmreaktion: Mausklick auf <-Button Die vorherige Population (jeweils vor einem Jahr) wird berechnet (und angezeigt), sofern das Jahr nicht vor 1999 ist. Mausklick auf >>-Button Die Population 10 Jahre später wird berechnet (und angezeigt). Mausklick auf <<-Button Die Population 10 Jahre vorher wird berechnet (und angezeigt). Man kann aber höchstens bis 1999 zurückspringen. 24
Hilfe von und über Delphi unterstützt die Programmentwicklung durch verschiedene Hilfsmechanismen, z. B. Automatische Erzeugung von Prozedurgerüsten Anzeige von Eigenschaften und Methoden hinter der Eingabe eines Objektbezeichners (ctrl-space) Aufruf eines umfassenden, verlinkten Hilfssystems über die Menüleiste Kontextsensitive Hilfe mit F 1 (auch im Fehlerfenster) G. Noll 2005 25
Debugging Neben dem Hilfesystem liefert Delphi auch einen Laufzeit Debugger Das Debugging muss unter Projekt Optionen - Compiler aktiviert sein Typisches Vorgehen Starten Sie ein Programm mit F 7 Verfolgen Sie den Ablauf im Quelltext und im Programmfenster Beachten Sie die Tooltipps unter dem Cursor im Quelltext. Sie können dazu auch Teile des Quelltextes markieren. Setzen Sie Haltepunkte im Quelltext (auf blauen Punkt klicken), starten Sie dann das Programm mit F 8 G. Noll 2005 26
Übung 1 d Das benutzte Wachstumsmodell beschreibt die Bevölkerungsentwicklung nur in einem begrenzten Zeitraum realistisch. Über längere Zeiträume lässt sich das Bevölkerungswachstum besser durch die angegebene Folge beschreiben: B 0 = 6. 0 Bn+1 = Bn + 0. 0027*Bn*(11 – Bn) Ändern Sie das Simulationsprogramm entsprechend ab. Überlegen Sie sich hierzu zunächst, welche Programmteile sie verändern müssen. - G. Noll 2005 Benutzungsoberfläche ? Datenmodell ? Verarbeitungsoperationen ? Ereignisbehandlungsmethoden? 27
Ein umfangreicheres Programm Rechentrainer Das Programm soll Aufgaben zu den vier Grundrechenarten anzeigen. Dazu werden zufällig ganze Zahlen aus dem Bereich 0. . 10 ausgewählt Auf der Benutzungsoberfläche (GUI) kann die Rechenoperation ausgewählt werden und die Anzeige des zunächst nicht sichtbaren Ergebnisses Durch wiederholtes Anklicken einer der vier Rechenoperationen werden neue Aufgaben generiert G. Noll 2005 28
Formularentwurf Ein Vorschlag für die Benutzungsschnittstelle Panel Button Label Group. Box Button G. Noll 2005 29
Übung 2 a Starten Sie ein neues Projekt Speichern Sie das neue Projekt mit Datei Alles speichern unmittelbar nach Beginn in einen eigenen Ordner mit dem Namen "Rechentrainer" Erstellen Sie eine Benutzungsschnittstelle für das Rechentraining Programm Verwenden Sie sinnvolle Bezeichner Eine Groupbox muss vor den Komponenten platziert werden, die sie aufnehmen soll Experimentieren Sie mit den Eigenschaften der Objekte (Farbe, Schriftart, Textausrichtung etc. ) G. Noll 2005 30
Übung 2 b Was soll passieren soll, wenn im Rechentrainerprogramm ein Button angeklickt wird? Ereignisse: Aktionen: BAddition. On. Click +Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen BSubtraktion. On. Click - Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen BMultiplikation. On. Click *Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen BDivision. On. Click : Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen BErgebnis. On. Click Ergebnis zeigen Form 1. On. Create Zufallsgenerator initialisieren G. Noll 2005 31
Übung 2 c Modellierung und Implementierung Daten: var Rechenzeichen: char; Zahl 1, Zahl 2, Ergebnis: integer; Verarbeitungsoperationen: procedure Plus. Aufgabe. Erzeugen; . . . procedure Minus. Aufgabe. Erzeugen; begin procedure Ergebnis. Berechnen; Zahl 1 : = random(11); begin Zahl 2 : = random(11); case Rechenzeichen of Rechenzeichen : = '-'; '+': Ergebnis : = Zahl 1 + Zahl 2; end; '-': Ergebnis : = Zahl 1 - Zahl 2; '*': Ergebnis : = Zahl 1 * Zahl 2; . . . ': ': Ergebnis : = Zahl 1 div Zahl 2; end; G. Noll 2005 32
Übung 2 d Modellierung und Implementierung Ereignisbehandlung: procedure TForm 1. BAddition. Click(Sender: TObject); begin Plus. Aufgabe. Erzeugen; Ergebnis. Berechnen; LZahl 1. Caption : = Int. To. Str(Zahl 1); LOperator. Caption : = Rechenzeichen; LZahl 2. Caption : = Int. To. Str(Zahl 2); LGleich. Visible : = true; LErgebnis. Caption : = Int. To. Str(Ergebnis); LErgebnis. Visible : = false; end; procedure TForm 1. BSubtraktion. Click(Sender: TObject); begin Minus. Aufgabe. Erzeugen; Ergebnis. Berechnen; LZahl 1. Caption : = Int. To. Str(Zahl 1); LOperator. Caption : = Rechenzeichen; LZahl 2. Caption : = Int. To. Str(Zahl 2); LGleich. Visible : = true; LErgebnis. Caption : = Int. To. Str(Ergebnis); LErgebnis. Visible : = false; end; G. Noll 2005 Redundanz 33
Übung 2 e Modellierung und Implementierung Die Prozeduren procedure Plus. Aufgabe. Erzeugen; Minus. Aufgabe. Erzeugen; Mal. Aufgabe. Erzeugen; Durch. Aufgabe. Erzeugen; procedure TForm 1. BAddition. Click(Sender: TObject); TForm 1. BSubtraktion. Click(Sender: TObject); TForm 1. BMultiplikation. Click(Sender: TObject); TForm 1. BDivision. Click(Sender: TObject); sind stark redundant Idee: Wir fassen die Prozeduren zusammen und differenzieren nach dem jeweils angelickten Rechenzeichen bzw. Button G. Noll 2005 34
Übung 2 f Zusammenfassungen procedure Plus. Aufgabe. Erzeugen; Minus. Aufgabe. Erzeugen; Mal. Aufgabe. Erzeugen; Durch. Aufgabe. Erzeugen; procedure Aufgabe. Erzeugen; erhält als Information das Rechenzeichen Ereignisse: nur eine Behandlungsmethode: BAddition. On. Click BSubtraktion. On. Click BMultiplikation. On. Click BDivision. On. Click procedure TForm 1. BRechenzeichen. Click(Sender: TObject); erhält als Information den Button G. Noll 2005 35
Übung 2 g Implementierung procedure TForm 1. BRechenzeichen. Click(Sender: TObject); begin // if if // Aktualisierung der Modelldaten Sender = BAddition then Rechenzeichen : = '+'; Sender = BSubtraktion then Rechenzeichen : = '-'; Sender = BMultiplikation then Rechenzeichen : = '*'; Sender = BDivision then Rechenzeichen : = ': '; kurz: Rechenzeichen : = TButton(Sender). Caption[1]; // Aufruf der Verarbeitungsoperationen Aufgabe. Erzeugen; Ergebnis. Berechnen; // Aktualisierung der Anzeige LZahl 1. Caption : = Int. To. Str(Zahl 1); . . . Vervollständigen Sie entsprechend Ihr Programm ! end; G. Noll 2005 36
Übungen 2 h Erweitern Sie das Rechentrainingsprogramm um die Möglichkeit, zwischen drei Zahlenbereichen für die Aufgaben zu wählen z. B. Zahlen von 0. . 50 oder 0. . 100 oder -10. . 10 Erweitern Sie das Rechentrainingsprogramm um die Möglichkeit, einen Lösungsvorschlag in ein Editfeld eingeben zu können. Nach Abschluss der Eingabe bewertet das System den Lösungsvorschlag G. Noll 2005 37
Eingabe / Ausgabe Edit Komponente einzeiliges Feld für Eingabe und Ausgabe zentrale Eigenschaft Text ( String) antwort: =Edit 1. Text; (property) nützliche Eigenschaften/Methoden Clear Enabled Visible Read. Only Edit 1. Clear; Edit 1. Enabled: =true; Edit 1. Visible: =false; Edit 1. Read. Only: =true; (procedure) (property) nützliche Ereignisse On. Change On. Enter On. Exit z. B. Prüfung der Eingabe vor dem Verlassen Zahlen müssen konvertiert werden G. Noll 2005 38
Eingabe / Ausgabe Memo Komponente mehrzeiliges Feld für Eingabe und Ausgabe zentrale Eigenschaft Lines ( Stringliste) zeile 4: =Memo 1. Lines[3]; nützliche Eigenschaften Alignment Enabled - Visible Ausrichtung des Textes aktiviert - sichtbar nützliche Methoden/Eigenschaften für Stringlisten Lines. Clear Lines. Add() Lines. Delete() Lines. Count Lines. Save. To. File() Lines. Load. From. File() G. Noll 2005 löscht alle Einträge (procedure) fügt eine Zeile am Ende hinzu Lines. Delete(0) löscht 1. Zeile Anzahl der Zeilen (property) Speichern in einem Textfile Laden aus einem Textfile 39
Eingabe / Ausgabe Listbox Komponente Ausgabe einer Liste von Strings mit der Möglichkeit zum Auswählen, Löschen, Hinzufügen zentrale Eigenschaften/Methoden Items ( Stringliste) List. Box 1. Items. Add('Speyer'); Es sind alle Eigenschaften und Methoden der Stringliste möglich Item. Index Nr. des ausgewählten Strings Zählung beginnend mit 0 Nr. ist -1 falls kein String gewählt wurde (property) Sorted mit der Zuweisung true werden die Strings sortiert (property) Clear löscht alle Einträge (procedure) G. Noll 2005 40
Eingabe / Ausgabe Spin. Edit-Feld für ganze Zahlen Start-Wert (Value) Minimalwert und Maximalwert Increment Radiobutton - Radiogroup An- und Abwahl einer Option Gruppe sich ausschließender Optionen Eigenschaft checked (boolean) bzw. Item. Index (Zählung mit 0 beginnend; -1 bei keiner Auswahl) Checkbox An- und Abwahl einer Option Eigenschaft checked (boolean) G. Noll 2005 41
Übungen 3 Schreiben Sie ein Programm, das den Bodymass-Index BMI berechnet und bewertet BMI = Gewicht in kg/(Körperlänge in m)² starkes Untergewicht: kleiner 16 Untergwicht: 16 bis unter 18, 5 Normalgewicht: 18, 5 bis unter 25 leichtes Übergewicht: 25 bis unter 30 starkes Übergewicht: 30 und mehr (nach WHO) Google Search: BMI Düsseldorf G. Noll 2005 42
Laufzeitfehler Sie lassen sich mit einem try-except Block abfangen und selbst behandeln Format try // Anweisungen deren Laufzeitfehler abgefangen werden except // Hinweise oder Abfangroutinen falls Fehler auftreten end; Voraussetzung das Stoppen bei Exceptions ist abgeschaltet bei Delphi 3 unter Tools-Umgebungsoptionen bei Delphi 6 unter Tools-Debugger-Optionen. Sprachexceptions G. Noll 2005 43
Übung 4 Eine Aufgabe aus einer Kursarbeit: Der euklidische Algorithmus gg. T(a, b) (1) r sei der Rest bei der Teilung a/b (2) ist r=0 so gib b als gg. T(a, b) aus und höre auf (3) speichere b in a und r in b ab und fahre mit (1) fort Verwende zur Eingabe die Spin. Edit Komponente (unter "Beispiele") Das Formular soll keinen Button enthalten G. Noll 2005 44
Übung 5 Die Zahlenraupe Auf dem ersten Glied einer Zahlenraupe steht eine beliebige positive Nummer Hat ein Raupenglied eine gerade Nummer, so steht auf dem nächsten die Hälfte dieser Nummer Hat es eine ungerade Nummer, so trägt das nächste Raupenglied die um 1 größere Nummer Steht auf einem Raupenglied die Nummer 1, so ist es das letzte Glied der Raupe Schreiben Sie ein Programm, das nach Eingabe der Startzahl die einzelnen Gliedernummern und ihre Anzahl ausgibt G. Noll 2005 45
Formularlose Units Delphi generiert zu jedem Formular automatisch eine Unit. Es lassen sich aber auch formularlose Units erstellen Vorteile: übersichtliche Projektgestaltung durch Trennung der Gestaltung der Benutzungsschnittstelle von den algorithmischen Verfahren Model-View-Controller Konzept wird in eine eigene Datei compiliert (*. DCU) Quelltext danach nicht mehr erforderlich mehrfach verwendbar G. Noll 2005 46
Formularlose Units Anlage einer Unit über Datei - Neu - Unit nach außen hin sichtbare Teile Algorithmen zu beachten: Einbinden eventuell benötigter Delphi-Units in die formularlose Unit Einbinden der formularlosen Units in die Unit des Formulars G. Noll 2005 Mit Datei-Speichern unter. . . lässt sich der Unitname ändern z. B. u. Auswahlsort (nicht im Quelltext von Hand ändern!) 47
Übung 6 Schreiben Sie ein Programm zum Sortieren einer Folge von Strings Vorschläge: Einfache Sortierverfahren sind z. B. Bubblesort, Einfügesort oder Austauschsort (Sortieren durch Minimumsuche) Beschränkung auf 10 Strings Das eigentliche Sortierverfahren soll in eine eigene Unit ausgelagert werden, damit es durch andere Verfahren (Units) ersetzt werden kann Ergänzung: Eine Listbox kann über die Eigenschaft Sorted von Delphi selbst sortiert werden: LBox 1. Sorted: =true. Fügen Sie einen Button zur Sortierung mit Delphi ein und vergleichen Sie das Ergebnis dem des eigenen Sortierverfahrens G. Noll 2005 48
Dateibehandlung Delphi stellt die Standarddialoge von Windows zum Öffnen und Speichern von Dateien zur Verfügung Dialog Komponenten für allg. Dateien Open. Dialog und Save. Dialog Komponenten werden nur im Formular platziert der Aufruf erfolgt durch die Methode execute liefert true (Ok-Button) oder false (Abbruch-Button) zurück über die Eigenschaft filename wird auf den gewählten oder eingegebenen Dateinamen zugegriffen G. Noll 2005 49
Übung 7 Ein Telefonverzeichnis Entwerfen Sie ein Programm, das ein Telefonverzeichnis mit Hilfe einer List. Box. Komponente realisiert Gespeichert werden Name, Vorname und Telefonnummer Es sollen folgende Funktionen möglich sein: Hinzufügen eines Eintrages Ändern oder Löschen eines ausgewählten Eintrages Löschen aller Einträge auf einmal Speichern und Laden des Telefonverzeichnisses Eventuell können Sie noch Sortieren und Suchen implementieren G. Noll 2005 50
Menü-Komponente Delphi stellt mit der zur Laufzeit unsichtbaren Komponente Main. Menue eine komfortable Menügestaltung zur Verfügung Doppelklick auf die Komponente im Formular öffnet den Menüeditor Ein Bindestrich - als Caption erzeugt einen Trennstrich Doppelklick auf den Menüeintrag führt zur EBM Über den Objektinspektor lässt sich auch eine schon vorhandene Ereignisbehandlungsmethode einbinden G. Noll 2005 51
Übung 8 Ändern Sie das Telefonverzeichnis so ab, dass die Optionen zum Laden und Speichern der Verzeichnisdatei als Menü realisiert werden G. Noll 2005 52
Übung 9 Schreiben Sie ein Programm für ein Quizspiel Aus einer Ansammlung von Quizfragen wird eine Frage zufällig ausgewählt und präsentiert Unter vier möglichen Antworten soll die richtige angekreuzt werden Bei jeder Frage wird die richtige Antwort und eine Bewertung der angekreuzten Antwort ausgegeben Das Spiel ist zu Ende, wenn alle Fragen behandelt wurden G. Noll 2005 53
Leistungsnachweise Struktur Aufteilung in theoretischen und praktischen Teil zuerst die Theorie bearbeiten, dann diesen Teil abgeben lassen praktischer Teil am Computer Beispiel für einen Leistungsnachweis (1 Std. ) Beispiel für ein Kursarbeit (2 Std. ) G. Noll 2005 54
Literatur Schulbücher Schumann Delphi für Kids (incl. Delphi 3 Professional CD) mitp-Verlag, Bonn 2000 Fleicher Programmentwicklung mit Delphi Dümmler, Bonn 1998 Modrow Informatik mit Delphi (2 Bd. ) Dümmler-Stam, Köln 1998 -2000 Bähnisch Praktische Informatik mit Delphi (2 Bd. ) Cornelsen, Berlin 2001 Damann-Wemßen Objektorientierte Programmierung mit Delphi (2 Bd. ) Klett, Stuttgart 2001 -2003 Frischalowski Delphi 5. 0 (2 Bd. ) Herdt-Verlag, Nackenheim 1999 Pohl Schülerübungen/Klausuren in Delphi (2 Hefte) Verlag J. Pohl, Karlsbad 1997 -2001 G. Noll 2005 55
Literatur Allgemein Eller Delphi 5 Addison-Wesley, München 2000 Doberenz-Kowalski Borland Delphi 6 Hanser, München 2002 Internet Google-Suche "Delphi Unterricht" unüberschaubare Vielfalt an Seiten http: //www. delphi-source. de http: //hsg. region-kaiserslautern. de/faecher/inf/index. php G. Noll 2005 56
Viel Spaß und Erfolg bei der weiteren Arbeit mit Delphi G. Noll 2005 57
G. Noll 2005 58
Projektverwaltung Delphi sichert im Laufe der Projektentwicklung eine Serien von Dateien, u. a. : *. dpr *. pas *. dfm *. res *. dcu *. dof *. ~? ? *. exe G. Noll 2005 Projektverwaltung (Hauptprogramm) Pascalquelltext (Unit) Formulareinstellungen Ressourcen wie Icons, Sound etc. compilierte Unit Compiler Einstellungen Backup Dateien *. ~pa *. ~dp etc. ausführbares Windows-Programm 59
Bevölkerungswachstum G. Noll 2005 60
Bevölkerungswachstum G. Noll 2005 61
Bevölkerungswachstum G. Noll 2005 62
Rechentrainer G. Noll 2005 63
Rechentrainer G. Noll 2005 64
Rechentrainer G. Noll 2005 65
Rechentrainer G. Noll 2005 66
BMI G. Noll 2005 67
BMI mit try-except G. Noll 2005 68
Zahlenraupe G. Noll 2005 69
Euklidischer Algorithmus G. Noll 2005 70
Sortieren G. Noll 2005 71
Dateidialoge G. Noll 2005 72
Telefonverzeichnis G. Noll 2005 73
Telefonverzeichnis G. Noll 2005 74
Quiz G. Noll 2005 75