von pascal zu delphi eine einführung in die entwicklung ereignisgesteuerter programme gregor noll...
TRANSCRIPT
Von Pascal zu Delphi
Eine Einführung in die Entwicklung
ereignisgesteuerter Programme
Gregor Noll2005
G.Noll 2005 2
Delphi für die Schule ?Delphi setzt die Tradition von Pascal fort und erweitert sie um moderne Sprachkonzepte
Ansprechende Benutzungsschnittstellebei der Programmentwicklungbei der Programmausführung
Unterstützung der Programmentwicklung
visuelle Komponentenbibliothek VCLkontextsensitives HilfesystemDebuggerautomatische Programmergänzung
Objektorientierungstets präsent: Objekte - Methoden - Ereignisseein Einstieg ist ohne vertiefte Kenntnisse der OOP möglich
G.Noll 2005 3
Versionen
1995 Delphi 116-Bit Compiler für Windows 3.x Plattform
2002 Delphi 6 und Delphi 7Personal - Professional - Enterprise - Architect32-Bit Compiler (seit Delphi 2)Klassenbibliothek für Cross-Plattform-EntwicklungKomponenten für Internet und Web-ServiceUnterstützung von UML (Vers. 7 ab Enterprise)
2005 Delphi 2005.Net-Version
G.Noll 2005 4
SchulversionenDelphi 3 Professional
vertrieben mit dem Buch "Delphi für Kids" (ca. 25 Euro) im mitp-Verlag Bonn
Delphi PersonalVers. 7 auf der Begleit-CD zur c't 8/2004Vers. 2005 auf Begleit-DVD PC-Magazin 5/2005kostenlose Registrierung bei Borland erforderlich
Schulversionen im Handelz. B. Delphi Professional Klassenraum-Lizenz 20 Plätze ca. 650 €
G.Noll 2005 5
Wir starten ...... mit der Entwicklung eines Simulationsprogramms
Wir brauchen:
Ein- und Ausgabemöglichkeiten
Etwas zum Starten der Berechnung
Benutzungs-schnittstelle
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)
G.Noll 2005 6
Benutzungsschnittstelle
Graphical User Interface
Button
Edit
Label
Wir gestalten das GUI mit der Delphi Entwicklungs-umgebung - visuelle Programmierung
G.Noll 2005 7
Entwicklungsumgebung
Komponentenpalette
Objektinspektor
Quelltextfenster
Formular
Delphi 6
Programmstart
G.Noll 2005 8
Ö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 unit1.pas und project1.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 9
Projektaufbau
Von Pascal her erwarten wir eine Struktur aus Hauptprogramm und Units. Auch Delphi-Projekte sind so aufgebaut
G.Noll 2005 10
GUI-Objekte erzeugen
Aktivierung der Komponente
anschließend auf
das Formular klicken
Positionieren Sie einige Komponenten auf das Formular und beobachten Sie dabei mit dem Objektinspektor, wie Delphi automatisch Bezeichnungen und weitere Eigenschaften vorgibt
G.Noll 2005 11
Bezeichnungen
Delphi vergibt automatisch Namen an die GUI-Objekte, z. B. Label1, Button1, Button2
Es ist besser, eigene Bezeichnungen zu verwenden
Im Objektinspektor über die Eigenschaft Namez. B. : BInit B für Button
GBAuswahl GB für GroupboxLTitel L für Labelusw.
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 12
Übung 1a
Erstellen Sie das GUI für unser Simulationsprogramm
BWeiter
EAnzahl
LTitel
EJahr
BInit
LJahr
LAnzahl
Schauen Sie sich den von Delphi generierten Quelltext an
G.Noll 2005 13
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) LTitel: TLabel; BInit: TButton; BWeiter: TButton; LJahr: TLabel; LAnzahl: TLabel; EJahr: TEdit; EAnzahl: TEdit; private { Private-Deklarationen } public { Public-Deklarationen } end;
var Form1: TForm1;
implementation
{$R *.DFM}
end.
Quelltext
Klassendefinition
Objekte
Objekt
G.Noll 2005 14
Objekte und Klassen
In unserem Programm begegnen wir verschiedenen Objekten:
EJahr: TEdit
Text = ´´
Left = 208
Top = 80
...
Klassename
EAnzahl: TEdit
Text = ´´
Left = 208
Top = 120
...
BInit: TButton
Caption =´Initiali- sierung´
Left = 104
Top = 176
...
Objektname
Jedes Objekt und jede Klasse ist über den Namen identifizierbar.
Objekte mit gleichem Aufbau werden zu Klassen zusammengefasst.
G.Noll 2005 15
Objekte
EJahr: TEdit
Text = ´´
Left = 208
Top = 80
...
Attribut Attributwert
Der Aufbau eines Objekts wird u. a. über die Attribute (Eigenschaften) bestimmt. Die Attributwerte legen den aktuellen Objektzustand fest.
Objekt
G.Noll 2005 16
Modellierung: Daten
const p = 1.3; var Jahr : integer; Anzahl : real;
Informationen:
Im Jahr 1999 wurde die 6 Milliardengrenze überschritten; zur Zeit wächst die Weltbevölkerung jährlich um ca. 1,3 %.
Modellierung:
Entprechend der Aufgabe legen wir die Daten und ihren Datentyp fest:
G.Noll 2005 17
Modellierung: Operationen
Für folgende Operationen formulieren wir jeweils passende Prozeduren
procedure initPopulation;beginJahr := 1999;Anzahl := 6.0;end;
Die Anfangspopulation (1999: 6.0 Mrd.) wird festgelegt
procedure naechstePopulation;beginJahr := Jahr + 1;Anzahl := Anzahl + p/100*Anzahl;end;
Die nächste Population wird berechnet
G.Noll 2005 18
Übung 1b
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 19
ProgrammablaufEin Delphiprogramm reagiert auf Ereignisse
Ereignisse lassen sich auslösen u. a. über Maus oder Tastatur
OnClickKlicken auf ein Objekt mit der MausOnChange eine Eingabe wird verändert
kein linearer Programmablaufdies erfordert für Pascal Gewohnte ein Umdenken beim ProgrammentwurfAlgorithmen, wie z. B. Sortierverfahren verlieren dennoch nicht an Bedeutung
G.Noll 2005 20
EreignisbehandlungDie Reaktion auf Ereignisse geschieht mit Ereignisbehandlungsmethoden (EBM)
Sie lassen sich über das Formular oder den Objektinspektor den Objekten zuordnenVerschiedene Objekte können dieselbe EBM erhaltenKleinere 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 (ModelViewController-Konzept)
G.Noll 2005 21
EreignisbehandlungsroutinenEin 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 FormulardefinitionKeine eigenständige Veränderungen an den Schnittstellen vornehmen!Leere Prozeduren werden automatisch gelöscht
G.Noll 2005 22
Ereignisse
In unserem Simulationsprogramm wollen wir zwei Ereignisse behandeln:
Benutzeraktion bzw. Ereignis
Mausklick auf init-Button
Mausklick auf >-Button
Programmreaktion
Die Anfangspopulation (1999: 6.0 Mrd.) wird festgelegt und angezeigt
Die nächste Population (jeweils nach einem Jahr) wird berechnet
und angezeigt
Für die Anzeige von Daten muss ein Daten-austausch mit den GUI-Objekten erfolgen
G.Noll 2005 23
Datenaustausch mit GUI-Objekten
Unsere GUI-Objekte verwenden Daten des Typs string Numerische Daten werden deshalb konvertiert
Jahr := StrToInt(EJahr.Text);Anzahl := StrToFloat(EAnzahl.Text);
Variablen GUI-Objekte
EJahr.Text := IntToStr(Jahr);EAnzahl.Text := FloatToStr(Anzahl);
Variablen GUI-Objekte
Formatierte Ausgabe:FloatToStrF() - meist ausreichend ist hier
FloatToStrF(zahl,ffnumber,8,2)
G.Noll 2005 24
Übung 1c
Ergänzen Sie den Quelltext um die noch fehlenden EreignisbehandlungsmethodenErgänzen Sie das Programm um weitere ButtonsBenutzeraktion:
Mausklick auf <-Button
Mausklick auf >>-Button
Mausklick auf <<-Button
Programmreaktion:
Die vorherige Population (jeweils vor einem Jahr) wird berechnet (und angezeigt), sofern das Jahr nicht vor 1999 ist.
Die Population 10 Jahre später wird berechnet (und angezeigt).
Die Population 10 Jahre vorher wird berechnet (und angezeigt). Man kann aber höchstens bis 1999 zurückspringen.
G.Noll 2005 25
Hilfe von und über DelphiDelphi unterstützt die Programmentwicklung durch verschiedene Hilfsmechanismen, z. B.
Automatische Erzeugung von ProzedurgerüstenAnzeige von Eigenschaften und Methoden hinter der Eingabe eines Objektbezeichners (ctrl-space)
Aufruf eines umfassenden, verlinkten Hilfssystems über die MenüleisteKontextsensitive Hilfe mit
F1(auch im Fehlerfenster)
G.Noll 2005 26
Debugging
Neben dem Hilfesystem liefert Delphi auch einen Laufzeit Debugger
Das Debugging muss unter Projekt - Optionen - Compiler aktiviert sein
Starten Sie ein Programm mit F7Verfolgen Sie den Ablauf im Quelltext und im ProgrammfensterBeachten 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 F8
Typisches Vorgehen
G.Noll 2005 27
Übung 1dDas benutzte Wachstumsmodell beschreibt die Bevölkerungs-entwicklung nur in einem begrenzten Zeitraum realistisch. Über längere Zeiträume lässt sich das Bevölkerungswachstum besser durch die angegebene Folge beschreiben:
B0 = 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.
- Benutzungsoberfläche ?- Datenmodell ?- Verarbeitungsoperationen ?- Ereignisbehandlungsmethoden?
G.Noll 2005 28
Ein umfangreicheres Programm
RechentrainerDas 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 ErgebnissesDurch wiederholtes Anklicken einer der vier Rechenoperationen werden neue Aufgaben generiert
G.Noll 2005 29
FormularentwurfEin Vorschlag für die Benutzungsschnittstelle
Label
Panel
GroupBox
GroupBox
Button
Button
G.Noll 2005 30
Übung 2a
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 BezeichnerEine Groupbox muss vor den Komponenten platziert werden, die sie aufnehmen sollExperimentieren Sie mit den Eigenschaften der Objekte (Farbe, Schriftart, Textausrichtung etc.)
G.Noll 2005 31
Übung 2b
Ereignisse:
BAddition.OnClick
BSubtraktion.OnClick
BMultiplikation.OnClick
BDivision.OnClick
BErgebnis.OnClick
Form1.OnCreate
Aktionen:
+Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
- Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
*Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
: Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
Ergebnis zeigen
Zufallsgenerator initialisieren
Was soll passieren soll, wenn im Rechen-trainerprogramm ein Button angeklickt wird?
G.Noll 2005 32
Übung 2c
Modellierung und Implementierung
var Rechenzeichen: char; Zahl1, Zahl2, Ergebnis: integer;
Verarbeitungsoperationen:procedure PlusAufgabeErzeugen;...
Daten:
procedure MinusAufgabeErzeugen;beginZahl1 := random(11);Zahl2 := random(11);Rechenzeichen := '-';end;
...
procedure ErgebnisBerechnen;begincase Rechenzeichen of '+': Ergebnis := Zahl1 + Zahl2; '-': Ergebnis := Zahl1 - Zahl2; '*': Ergebnis := Zahl1 * Zahl2; ':': Ergebnis := Zahl1 div Zahl2;end;
G.Noll 2005 33
Übung 2d
Modellierung und ImplementierungEreignisbehandlung:
procedure TForm1.BAdditionClick(Sender: TObject);beginPlusAufgabeErzeugen;ErgebnisBerechnen;LZahl1.Caption := IntToStr(Zahl1);LOperator.Caption := Rechenzeichen;LZahl2.Caption := IntToStr(Zahl2);LGleich.Visible := true;LErgebnis.Caption := IntToStr(Ergebnis);LErgebnis.Visible := false;end;
procedure TForm1.BSubtraktionClick(Sender: TObject);beginMinusAufgabeErzeugen;ErgebnisBerechnen;LZahl1.Caption := IntToStr(Zahl1);LOperator.Caption := Rechenzeichen;LZahl2.Caption := IntToStr(Zahl2);LGleich.Visible := true;LErgebnis.Caption := IntToStr(Ergebnis);LErgebnis.Visible := false;end;
Redundan
z
G.Noll 2005 34
Übung 2e
Modellierung und Implementierung
sind stark redundant
Idee: Wir fassen die Prozeduren zusammen und differenzieren nach dem jeweils angelickten Rechenzeichen bzw. Button
procedure PlusAufgabeErzeugen;procedure MinusAufgabeErzeugen;procedure MalAufgabeErzeugen;procedure DurchAufgabeErzeugen;
procedure TForm1.BAdditionClick(Sender: TObject);procedure TForm1.BSubtraktionClick(Sender: TObject);procedure TForm1.BMultiplikationClick(Sender: TObject);procedure TForm1.BDivisionClick(Sender: TObject);
Die Prozeduren
G.Noll 2005 35
Übung 2f
Zusammenfassungenprocedure PlusAufgabeErzeugen;procedure MinusAufgabeErzeugen;procedure MalAufgabeErzeugen;procedure DurchAufgabeErzeugen;
procedure AufgabeErzeugen;
erhält als Informationdas Rechenzeichen
Ereignisse:
BAddition.OnClickBSubtraktion.OnClickBMultiplikation.OnClickBDivision.OnClick
nur eine Behandlungsmethode:
procedureTForm1.BRechenzeichenClick(Sender: TObject);
erhält als Informationden Button
G.Noll 2005 36
Übung 2g
Implementierungprocedure TForm1.BRechenzeichenClick(Sender: TObject);begin
// Aktualisierung der Modelldatenif Sender = BAddition then Rechenzeichen := '+';if Sender = BSubtraktion then Rechenzeichen := '-';if Sender = BMultiplikation then Rechenzeichen := '*';if Sender = BDivision then Rechenzeichen := ':';
// Aufruf der VerarbeitungsoperationenAufgabeErzeugen;ErgebnisBerechnen;
// Aktualisierung der AnzeigeLZahl1.Caption := IntToStr(Zahl1);...
end;
// kurz: Rechenzeichen := TButton(Sender).Caption[1];
Vervollständigen Sie entsprechend Ihr Programm !
G.Noll 2005 37
Übungen 2h
Erweitern Sie das Rechentrainingsprogramm um die Möglichkeit, zwischen drei Zahlen-bereichen 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 38
Eingabe / Ausgabe
Edit Komponenteeinzeiliges Feld für Eingabe und Ausgabezentrale Eigenschaft
Text ( String) antwort:=Edit1.Text; (property)
nützliche Eigenschaften/MethodenClear Edit1.Clear; (procedure)Enabled Edit1.Enabled:=true; (property)Visible Edit1.Visible:=false; (property)ReadOnly Edit1.ReadOnly:=true;(property)
nützliche EreignisseOnChangeOnEnterOnExit z. B. Prüfung der Eingabe vor dem Verlassen
Zahlen müssen konvertiert werden
G.Noll 2005 39
Eingabe / Ausgabe
Memo Komponentemehrzeiliges Feld für Eingabe und Ausgabezentrale Eigenschaft
Lines ( Stringliste) zeile4:=Memo1.Lines[3];
nützliche EigenschaftenAlignment Ausrichtung des TextesEnabled - Visible aktiviert - sichtbar
nützliche Methoden/Eigenschaften für Stringlisten
Lines.Clear löscht alle Einträge (procedure)Lines.Add() fügt eine Zeile am Ende hinzuLines.Delete() Lines.Delete(0) löscht 1. ZeileLines.Count Anzahl der Zeilen (property)Lines.SaveToFile() Speichern in einem TextfileLines.LoadFromFile() Laden aus einem Textfile
G.Noll 2005 40
Eingabe / Ausgabe
Listbox KomponenteAusgabe einer Liste von Strings mit der Möglich-keit zum Auswählen, Löschen, Hinzufügenzentrale Eigenschaften/Methoden
Items ( Stringliste)ListBox1.Items.Add('Speyer');
Es sind alle Eigenschaften und Methoden der Stringliste möglichItemIndex 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 41
Eingabe / Ausgabe
SpinEditEdit-Feld für ganze Zahlen Start-Wert (Value)Minimalwert und MaximalwertIncrement
Eigenschaft checked (boolean)
CheckboxAn- und Abwahl einer Option
Gruppe sich ausschließender OptionenEigenschaft checked (boolean) bzw. ItemIndex (Zählung mit 0 beginnend; -1 bei keiner Auswahl)
Radiobutton - RadiogroupAn- und Abwahl einer Option
G.Noll 2005 42
Ü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 16Untergwicht: 16 bis unter 18,5Normalgewicht: 18,5 bis unter 25
leichtes Übergewicht: 25 bis unter 30starkes Übergewicht: 30 und mehr(nach WHO)Google Search: BMI Düsseldorf
G.Noll 2005 43
Laufzeitfehler
Sie lassen sich mit einem try-except Block abfangen und selbst behandeln
Voraussetzungdas Stoppen bei Exceptions ist abgeschaltet
bei Delphi 3 unter Tools-Umgebungsoptionenbei Delphi 6 unter Tools-Debugger-Optionen-Sprachexceptions
Formattry
// Anweisungen deren Laufzeitfehler abgefangen werden
except // Hinweise oder Abfangroutinen falls Fehler
auftreten end;
G.Noll 2005 44
Übung 4
Eine Aufgabe aus einer Kursarbeit:
Der euklidische Algorithmus
ggT(a,b)(1) r sei der Rest bei der Teilung a/b(2) ist r=0 so gib b als ggT(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 SpinEdit Komponente (unter "Beispiele")Das Formular soll keinen Button enthalten
G.Noll 2005 45
Übung 5
Die Zahlenraupe
1 2 4 8
7 14 28
27 54 53 Auf dem ersten Glied
einer Zahlenraupe steht eine beliebige positive NummerHat ein Raupenglied eine gerade Nummer, so steht auf dem nächsten die Hälfte dieser NummerHat es eine ungerade Nummer, so trägt das nächste Raupenglied die um 1 größere NummerSteht 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 46
Formularlose Units
Vorteile:übersichtliche Projektgestaltung durch Trennung der Gestaltung der Benutzungsschnittstelle von den algorithmischen Verfahren
Delphi generiert zu jedem Formular automatisch eine Unit. Es lassen sich aber auch formularlose Units erstellen
Model-View-Controller Konzept
wird in eine eigene Datei compiliert (*.DCU)Quelltext danach nicht mehr erforderlich
mehrfach verwendbar
G.Noll 2005 47
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
Mit Datei-Speichern unter... lässt sich der Unitname ändern z.B. uAuswahlsort (nicht im Quelltext von Hand ändern!)
G.Noll 2005 48
Übung 6Schreiben Sie ein Programm zum Sortieren einer Folge von Strings
Vorschläge:Einfache Sortierverfahren sind z. B. Bubblesort, Einfügesort oder Austauschsort (Sortieren durch Minimumsuche)
Ergänzung:Eine Listbox kann über die Eigenschaft Sorted von Delphi selbst sortiert werden: LBox1.Sorted:=true. Fügen Sie einen Button zur Sortierung mit Delphi ein und verglei-chen Sie das Ergebnis dem des eigenen Sortierverfahrens
Beschränkung auf 10 Strings
Das eigentliche Sortierverfahren soll in eine eigene Unit ausgelagert werden, damit es durch andere Verfahren (Units) ersetzt werden kann
G.Noll 2005 49
Dialog Komponenten für allg. DateienOpenDialog und SaveDialogKomponenten werden nur im Formular platziert
Dateibehandlung
Delphi stellt die Standarddialoge von Windows zum Öffnen und Speichern von Dateien zur Verfügung
der Aufruf erfolgt durch die Methode executeexecute 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 50
Übung 7Ein Telefonverzeichnis
Entwerfen Sie ein Programm, das ein Telefonverzeichnis mit Hilfe einer ListBox-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 EintragesLöschen aller Einträge auf einmalSpeichern und Laden des Telefonverzeichnisses
Eventuell können Sie noch Sortieren und Suchen implementieren
G.Noll 2005 51
Menü-Komponente
Delphi stellt mit der zur Laufzeit unsichtbaren Komponente MainMenue eine komfortable Menügestaltung zur Verfügung
Doppelklick auf die Komponente im Formular öffnet den Menüeditor
Über den Objektinspektor lässt sich auch eine schon vorhandene Ereignisbehandlungsmethode einbinden
Ein Bindestrich - als Caption erzeugt einen TrennstrichDoppelklick auf den Menüeintrag führt zur EBM
G.Noll 2005 52
Übung 8
Ändern Sie das Telefonverzeichnis so ab, dass die Optionen zum Laden und Speichern der Verzeichnisdatei als Menü realisiert werden
G.Noll 2005 53
Aus einer Ansammlung von Quizfragen wird eine Frage zufällig ausgewählt und präsentiertUnter vier möglichen Antworten soll die richtige angekreuzt werdenBei jeder Frage wird die richtige Antwort und eine Bewertung der angekreuzten Antwort ausgegebenDas Spiel ist zu Ende, wenn alle Fragen behandelt wurden
Übung 9
Schreiben Sie ein Programm für ein Quizspiel
G.Noll 2005 54
Aufteilung in theoretischen und praktischen Teil
Leistungsnachweise
Struktur
Beispiel für einen Leistungsnachweis (1 Std.)
Beispiel für ein Kursarbeit (2 Std.)
zuerst die Theorie bearbeiten, dann diesen Teil abgeben lassen
praktischer Teil am Computer
G.Noll 2005 55
Schumann Delphi für Kids (incl. Delphi 3 Professional CD)mitp-Verlag, Bonn 2000Fleicher Programmentwicklung mit DelphiDümmler, Bonn 1998Modrow Informatik mit Delphi (2 Bd.)Dümmler-Stam, Köln 1998-2000Bähnisch Praktische Informatik mit Delphi (2 Bd.)Cornelsen, Berlin 2001 Damann-WemßenObjektorientierte Programmierung mit Delphi (2 Bd.)Klett, Stuttgart 2001-2003Frischalowski Delphi 5.0 (2 Bd.)Herdt-Verlag, Nackenheim 1999Pohl Schülerübungen/Klausuren in Delphi (2 Hefte)Verlag J.Pohl, Karlsbad 1997-2001
Literatur
Schulbücher
G.Noll 2005 56
EllerDelphi 5Addison-Wesley, München 2000
Doberenz-KowalskiBorland Delphi 6Hanser, München 2002
Literatur
Allgemein
InternetGoogle-Suche "Delphi Unterricht"unüberschaubare Vielfalt an Seiten
http://www.delphi-source.dehttp://hsg.region-kaiserslautern.de/faecher/inf/index.php
G.Noll 2005 57
Viel Spaß und Erfolg
bei der weiteren Arbeit mit Delphi
G.Noll 2005 58
G.Noll 2005 59
Projektverwaltung
*.dpr Projektverwaltung (Hauptprogramm)*.pas Pascalquelltext (Unit)*.dfm Formulareinstellungen*.res Ressourcen wie Icons, Sound etc.*.dcu compilierte Unit*.dof Compiler Einstellungen*.~?? Backup Dateien *.~pa *.~dp etc.*.exe ausführbares Windows-Programm
Delphi sichert im Laufe der Projektentwick-lung eine Serien von Dateien, u. a. :
G.Noll 2005 60
Bevölkerungswachstum
G.Noll 2005 61
Bevölkerungswachstum
G.Noll 2005 62
Bevölkerungswachstum
G.Noll 2005 63
Rechentrainer
G.Noll 2005 64
Rechentrainer
G.Noll 2005 65
Rechentrainer
G.Noll 2005 66
Rechentrainer
G.Noll 2005 67
BMI
G.Noll 2005 68
BMI mit try-except
G.Noll 2005 69
Zahlenraupe
G.Noll 2005 70
Euklidischer Algorithmus
G.Noll 2005 71
Sortieren
G.Noll 2005 72
Dateidialoge
G.Noll 2005 73
Telefonverzeichnis
G.Noll 2005 74
Telefonverzeichnis
G.Noll 2005 75
Quiz