Powerpoint-Präsentation

Werbung
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

Ein- und Ausgabemöglichkeiten

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 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
8
Projektaufbau
Von Pascal her erwarten wir eine Struktur
aus Hauptprogramm und Units. Auch DelphiProjekte 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. Label1, Button1, Button2
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 1a
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 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;
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
= ´´
Text
= ´´
Left
= 208
Left
= 208
Top
= 80
Top
= 120
...
...
BInit: TButton
Caption
=´Initialisierung´
Left
= 104
Top
= 176
...
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 initPopulation;
begin
Jahr
:= 1999;
Anzahl := 6.0;
end;
Die nächste Population wird berechnet
procedure naechstePopulation;
begin
Jahr
:= Jahr + 1;
Anzahl := Anzahl + p/100*Anzahl;
end;
G.Noll 2005
17
Ü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
18
Programmablauf
Ein Delphiprogramm reagiert auf Ereignisse
Ereignisse lassen sich auslösen u. a. über
Maus oder Tastatur
OnClick
Klicken auf ein Objekt mit der Maus
OnChange 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 (ModelViewController-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
:= IntToStr(Jahr);
EAnzahl.Text := FloatToStr(Anzahl);
Variablen
Jahr
Anzahl
GUI-Objekte
:= StrToInt(EJahr.Text);
:= StrToFloat(EAnzahl.Text);
Formatierte Ausgabe:
FloatToStrF()
G.Noll 2005
-
meist ausreichend ist hier
FloatToStrF(zahl,ffnumber,8,2)
23
Übung 1c
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
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 F1
(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 F7
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 F8
G.Noll 2005
26
Übung 1d
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:
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.
-
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
GroupBox
GroupBox
Button
G.Noll 2005
29
Ü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 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 2b
Was soll passieren soll, wenn im Rechentrainerprogramm ein Button angeklickt wird?
Ereignisse:
Aktionen:
BAddition.OnClick
+Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
BSubtraktion.OnClick
- Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
BMultiplikation.OnClick *Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
BDivision.OnClick
: Aufgabe erzeugen; Ergebnis berechnen; Aufgabe anzeigen
BErgebnis.OnClick
Ergebnis zeigen
Form1.OnCreate
Zufallsgenerator initialisieren
G.Noll 2005
31
Übung 2c
Modellierung und Implementierung
Daten:
var
Rechenzeichen: char;
Zahl1, Zahl2, Ergebnis: integer;
Verarbeitungsoperationen:
procedure PlusAufgabeErzeugen;
...
procedure MinusAufgabeErzeugen;
begin
procedure ErgebnisBerechnen;
Zahl1 := random(11);
begin
Zahl2 := random(11);
case Rechenzeichen of
Rechenzeichen := '-';
'+': Ergebnis := Zahl1 + Zahl2;
end;
'-': Ergebnis := Zahl1 - Zahl2;
'*': Ergebnis := Zahl1 * Zahl2;
...
':': Ergebnis := Zahl1 div Zahl2;
end;
G.Noll 2005
32
Übung 2d
Modellierung und Implementierung
Ereignisbehandlung:
procedure TForm1.BAdditionClick(Sender: TObject);
begin
PlusAufgabeErzeugen;
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);
begin
MinusAufgabeErzeugen;
ErgebnisBerechnen;
LZahl1.Caption := IntToStr(Zahl1);
LOperator.Caption := Rechenzeichen;
LZahl2.Caption := IntToStr(Zahl2);
LGleich.Visible := true;
LErgebnis.Caption := IntToStr(Ergebnis);
LErgebnis.Visible := false;
end;
G.Noll 2005
Redundanz
33
Übung 2e
Modellierung und Implementierung
Die Prozeduren
procedure
procedure
procedure
procedure
PlusAufgabeErzeugen;
MinusAufgabeErzeugen;
MalAufgabeErzeugen;
DurchAufgabeErzeugen;
procedure
procedure
procedure
procedure
TForm1.BAdditionClick(Sender: TObject);
TForm1.BSubtraktionClick(Sender: TObject);
TForm1.BMultiplikationClick(Sender: TObject);
TForm1.BDivisionClick(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 2f
Zusammenfassungen
procedure
procedure
procedure
procedure
PlusAufgabeErzeugen;
MinusAufgabeErzeugen;
MalAufgabeErzeugen;
DurchAufgabeErzeugen;
procedure
AufgabeErzeugen;
erhält als Information
das Rechenzeichen
Ereignisse:
nur eine Behandlungsmethode:
BAddition.OnClick
BSubtraktion.OnClick
BMultiplikation.OnClick
BDivision.OnClick
procedure
TForm1.BRechenzeichenClick(Sender: TObject);
erhält als Information
den Button
G.Noll 2005
35
Übung 2g
Implementierung
procedure TForm1.BRechenzeichenClick(Sender: TObject);
begin
//
if
if
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
AufgabeErzeugen;
ErgebnisBerechnen;
// Aktualisierung der Anzeige
LZahl1.Caption := IntToStr(Zahl1);
...
Vervollständigen Sie
entsprechend
Ihr Programm !
end;
G.Noll 2005
36
Übungen 2h
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:=Edit1.Text; (property)
nützliche Eigenschaften/Methoden
Clear
Enabled
Visible
ReadOnly
Edit1.Clear;
Edit1.Enabled:=true;
Edit1.Visible:=false;
Edit1.ReadOnly:=true;
(procedure)
(property)
(property)
(property)
nützliche Ereignisse
OnChange
OnEnter
OnExit 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) zeile4:=Memo1.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.SaveToFile()
Lines.LoadFromFile()
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) ListBox1.Items.Add('Speyer');
Es sind alle Eigenschaften und
Methoden der Stringliste möglich
ItemIndex
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
SpinEdit
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. ItemIndex
(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-OptionenSprachexceptions
G.Noll 2005
43
Ü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
44
Übung 5
Die Zahlenraupe
Auf dem ersten Glied
einer Zahlenraupe steht
eine beliebige positive Nummer
28 14
53 54
27
7
8
4
2
1
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. uAuswahlsort (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: LBox1.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
OpenDialog
und SaveDialog
Komponenten werden nur im Formular platziert
der Aufruf erfolgt durch die Methode execute
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 ListBoxKomponente 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 MainMenue 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
Herunterladen