Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Delphi II - OOP IFB Fortbildung Grundkonzepte der OOP: Beziehungen zwischen Objekten Bsp: Ticketautomat – Stoppuhr - Kontoverwaltung 7.11.2006 Tobias Selinger.

Ähnliche Präsentationen


Präsentation zum Thema: "Delphi II - OOP IFB Fortbildung Grundkonzepte der OOP: Beziehungen zwischen Objekten Bsp: Ticketautomat – Stoppuhr - Kontoverwaltung 7.11.2006 Tobias Selinger."—  Präsentation transkript:

1 Delphi II - OOP IFB Fortbildung Grundkonzepte der OOP: Beziehungen zwischen Objekten Bsp: Ticketautomat – Stoppuhr - Kontoverwaltung Tobias Selinger

2 TS OOP mit Delphi 2 Ticketautomat: Formular

3 TS OOP mit Delphi 3 Ticketautomat: Formular-Klasse

4 TS OOP mit Delphi 4 Ticketautomat: Klassendiagramm Aufrufe

5 TS OOP mit Delphi 5 Ticketautomat: Beziehung? Aufrufe GUI-Klasse Fach-Klasse Beziehung?

6 TS OOP mit Delphi 6 Ticketautomat: Assoziation Aufrufe GUI-Klasse Fach-Klasse kennt-Beziehung: Assoziation

7 TS OOP mit Delphi 7 Ticketautomat: Units Aufrufe GUI-Klasse Fach-Klasse unit Unit1; uses Windows, Forms,... mTTicketautomat ; type TForm1 = class(TForm) unit mTTicketautomat; Uses Dialogs, SysUtils; type TTicketautomat = class kennt-Beziehung: Assoziation

8 TS OOP mit Delphi 8Benutzer-Dialog Wer – d.h. welche Klasse? – führt den Dialog mit dem Benutzer ? GUI-Klasse oderFachklasse ?

9 TS OOP mit Delphi 9Benutzer-Dialog Wer – d.h. welche Klasse? – führt den Dialog mit dem Benutzer ? Die GUI-Klasse: - Buttons, Edit-Felder, Dialog-Boxen etc. (typischerweise) - Ereignisbehandlungs-Prozeduren - Aufruf der Methoden der bekannten Fachklasse - Behandeln / Anzeigen der Rückgabewerte

10 TS OOP mit Delphi 10Benutzer-Dialog Wer – d.h. welche Klasse? – führt den Dialog mit dem Benutzer ? Die GUI-Klasse: - Buttons, Edit-Felder, Dialog-Boxen etc. (typischerweise)- Ereignisbehandlungs-Prozeduren - Aufruf der Methoden der bekannten Fachklasse Beispiel:- Behandeln / Anzeigen der Rückgabewerte procedure TForm1.GeldEinwerfenButtonClick(Sender: TObject); var betrag: integer; begin betrag := strtoint(InputBox('Geld einwerfen', 'Betrag', '0')); Automat.geldEinwerfen(betrag); AktuelleAnzahlungEdit.Text:=inttostr(Automat.gibAktuelleAnzahlung); end;

11 TS OOP mit Delphi 11 Zum Testen: Dialoge innerhalb der Fachklasse Mitunter kann es hilfreich sein, eine Fachklasse alleine zu testen, d.h. a la BlueJ unabhängig von einer GUI-Klasse. Für kurze Dialoge (kleine Ein-/Ausgabefenster) bietet die Unit Dialogs folgende unabhängige Prozeduren und Funktionen: Ausgabefenster: ShowMessage ( ) zeigt einen String an. Eingabefenster: InputBox (,, ) liefert den eingegebenen String. InputQuery (,, ) liefert Erfolg (true/false) und belegt ggf. die Variable mit der Benutzer-Eingabe.

12 TS OOP mit Delphi 12 Übung zum Ticketautomat und UML-Editor: Einnahmen abholen Kopieren und öffnen Sie das Delphi-Projekt Ticketautomat. Starten Sie auch den UML-Editor und importieren Sie die beteiligten Klassen des Ticketautomaten (TForm1 und TTicketautomat, inkl. Code). Ergänzen Sie (im UML-Editor) die Methode EinnahmenAbholen, die dem Automatenbetreiber zur Entnahme der gesamten Einnahmen dient. Exportieren Sie (im UML-Editor) nun die veränderte Klasse nach Delphi, d.h. überschreiben Sie die zugehörige Unit-Datei. Aktualisieren Sie (in Delphi) die veränderte Klasse, und ergänzen Sie die Implementierung der Methode EinnahmenAbholen: - Erfragen und prüfen Sie den korrekten Zugangscode - Setzen Sie die Einnahmen auf Null, bzw. geben Sie eine Meldung Zugriff verweigert aus. Fügen Sie Ihrem Formular einen entsprechenden Button mit Ereignisbehandlungsprozedur hinzu,speichern Sie Ihre Delphi-Dateien und die (aktualisierte) UML-Datei,und testen Sie! Zusatz: Wie könnte man ein Parkticket in der GUI-Listbox ausgeben?

13 TS OOP mit Delphi 13 Stoppuhr: Modularisierung? Aufteilung in Module?

14 TS OOP mit Delphi 14 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden Erforderlich e Klassen?

15 TS OOP mit Delphi 15 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

16 TS OOP mit Delphi 16 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

17 TS OOP mit Delphi 17 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

18 TS OOP mit Delphi 18 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

19 TS OOP mit Delphi 19 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

20 TS OOP mit Delphi 20 Stoppuhr: Klassendiagramm Stoppuhr (ohne GUI) Hundertstel Sekunden

21 TS OOP mit Delphi 21 Stoppuhr: Klassendiagramm Beziehung?

22 TS OOP mit Delphi 22 Stoppuhr: Klassendiagramm Assoziation: kennt Aggregation: hat

23 TS OOP mit Delphi 23 Übung: Stoppuhr Definieren Sie im UML-Editor die Klasse TZaehler. Exportieren Sie die zugehörige Delphi-Unit unter dem Dateinamen mTZaehler.pas in einen neuen Ordner namens Stoppuhr. Beginnen Sie ein neues Delphi-Projekt und speichern Sie alle Projekt- Dateien ebenfalls in diesem Ordner. Fügen Sie Ihrem Projekt die Zähler-Unit hinzu. (Projekt – Hinzufügen... oder Ansicht – Projektverwaltung... ) Implementieren Sie die Zähler-Methoden! Erstellen Sie ein einfaches GUI zum Testen der Zähler-Klasse (z.B. für Zähler erzeugen, Wert anzeigen, erhöhen). Testen Sie! Kopieren und öffnen Sie das Delphi-Projekt Stoppuhr, fügen Sie Ihre Zähler-Klasse hinzu und testen Sie! Erweiterung 1:Fügen Sie einen Highscore für die Bestzeit hinzu! Erweiterung 2:Entwickeln Sie eine 24-Stunden-Uhr mit Weckzeit!

24 TS OOP mit Delphi 24Kontoverwaltung

25 TS OOP mit Delphi 25Kontoverwaltung

26 TS OOP mit Delphi 26Kontoverwaltung Problem: gegenseitige kennt- Beziehungen! (Überkreuz-Referenz mehrerer Units in Delphi nicht erlaubt!) Lösung: a) Mehrere Klassen in eine Unit b) Redesign mit Koppel-Klassen


Herunterladen ppt "Delphi II - OOP IFB Fortbildung Grundkonzepte der OOP: Beziehungen zwischen Objekten Bsp: Ticketautomat – Stoppuhr - Kontoverwaltung 7.11.2006 Tobias Selinger."

Ähnliche Präsentationen


Google-Anzeigen