Klasse TFinder und TPerson einbinden
In
dieser Version kann ein Fundstück mit allen Attributen, also auch
endlich auch mit den Angaben zur Finderin bzw. zum Finder, eingegeben und
mit dem Suchen-Button angezeigt werden.
Typisch für OOP ist die Bottom Up - Vorgehensweise, bei der man von unten in der Klassenhierarchie mit der Implementation anfängt, um dann ein fertiges Modul beim nächsten verwenden zu können. Danach hätte sich die Reihenfolge: PERSON - FINDER - FUNDSACHE - FENSTER ergeben. Das hat jedoch den Nachteil, dass erst verhältnismäßig spät etwas Funktionierendes vorliegt.
Ebenso typisch für OOP ist das Zusammenbauen von neuen Applikationen aus schon fertigen Klassen (Konfigurieren), die in einer Bibliothek gesammelt sind. Hier kann vorteilhaft die Klasse PERSON, die von einem früheren Kurs erstellt wurde, benutzt werden. Das spart viel Zeit.
Die Klasse TFinder implementieren und die Vererbungsbeziehung zu TPerson herstellen.
Erzeugen Sie zunächst eine neue Klasse TFinder nach dem selben Vorgehen mit dem Sie TFundsache erstellt haben. Danach vervollständigen Sie bitte diese Klasse indem Sie folgende Schritte ausführen.
- uses uPerson;
- Vererbungsbeziehung einbauen: TFinder = class (TPerson)
- In Init die gleichnamige Methode aus der Oberklasse mit dem Zusatz inherited
hinzufügen, weil das geerbte Objekt ebenfalls initialisiert
werden muss. (Vgl. Patient)
procedure TFinder.Init; (* -------------------------------------------------------------------- *) begin inherited Init; Klasse := ''; end;
- Fügen Sie das Attribut Klasse (für die Schulklasse des Finders) mit den Methoden setKlasse und getKlasse hinzu.
Die Aggregation FENSTER - FUNDSACHE implementieren
Ergänzen Sie die Klasse uFundsache:
- uses ..., uFinder
- Neues Attribut: Finder : TFinder; über private einfügen
- in Create hinzufügen: Finder := TFinder.Create; // Finder ist ein Exemplar (!), muss erzeugt werden
- in Init hinzufügen : Finder.Init;
Ergänzen Sie die Klasse uFenster:
- Bei DatenAktualisieren die fehlenden Set-Methoden (außer Geschlecht)
nach folgendem Muster eintragen:
Fund.Finder.SetName (FinderNameEdt.Text); - Bei MaskeAktualisieren die fehlenden Get-Methoden (außer Geschlecht) nach
folgendem Muster eintragen:
FinderNameEdt.Text := Fund.Finder.GetName ;
- Fügen Sie die Setmethode bei DatenAktualisieren für Geschlecht
ein:
case FinderGeschlechtRdGrp.ItemIndex of 0 : Fund.Finder.SetGeschlecht('w'); 1 : Fund.Finder.SetGeschlecht('m'); end; - Fügen Sie die GetMethode bei MaskeAktualiseren für Geschlecht
ein:
case Fund.Finder.GetGeschlecht of 'w' : FinderGeschlechtRdGrp.ItemIndex := 0; 'm' : FinderGeschlechtRdGrp.ItemIndex := 1; end;
Jetzt sollte genau eine Fundsache nach dem Klicken auf die Ok-Taste gespeichert und über die Suchen-Taste wieder ausgegeben werden.