Da in OOP die Objekte Botschaften mit anderen austauschen, müssen diese
natürlich schon existieren. Wenn also TAmpel funktionieren soll, muß
TLampe schon fertig sein. Deshalb programmiert man von unten hoch (bottom
up).
Klasse
TLampe implementieren
Im Gegensatz zur Fensterklasse, wo die GUI-Objekte und ihre Methoden
automatisch erzeugt werden, sind in den Fachklassen die
Datenobjekte manuell zu codieren. Die gesamte Klassen-Unit ist vollständig mit
dem Editor zu schreiben.
Dazu sind folgende Schritte erforderlich:
-
Neue Unit hinzufügen |
|
1. Projekt
Ampel öffnen |
Symbolleiste-Projekt öffnen |
2. Neue Unit
hinzufügen |
Datei-Neu Unit-Doppelklick |
3. Unit1
unter richtigem Namen speichern |
Datei-Speichern unter ... uLampe.pas
(dabei wird der Unitname autom.
angepasst) |
4. Prüfen
auf richtigen Namen und Ort |
Ansicht-Projektverwaltung |
-
Schreiben Sie den Code für die Unit uLampe.pas!
Zur Kontrolle ist der Text unten abgedruckt.
-
Kompilieren Sie das Programm bis es fehlerfrei läuft.
Es wird dann zwar immer noch nicht ganz funktionsfähig sein, aber bald
ist es soweit!!!...
MERKE: Jede Klasse
wird eine Unit! |
UNIT uLampe;
(* ******************************************************************** *)
(* K L A S S E : TLampe *)
(* -------------------------------------------------------------------- *)
(* Version : 0.9 *)
(* Autor : S. Spolwig *)
(* Beschreibung: Die Klasse bildet eine Lampe für beliebige Anwendungen *)
(* ab.
*)
(* Compiler : Delphi 5.0 *)
(* Aenderungen : 0.9 11-MAY-01 *)
(* ******************************************************************** *)
INTERFACE
// ======================================================================
uses uGrafik; // importiert TKreis
type
TLampe = class(TKreis)
public
constructor Create;
procedure Ein;
procedure Aus;
end;
(* -------------------- B e s c h r e i b u n g -------------------------
Oberklasse : TKreis
Bezugsklassen : -
Methoden
--------
Create
Auftrag: erzeugen und Radius festlegen
vorher : -
nachher: done
Ein
Auftrag: Lampe einschalten
vorher : -
nachher: Zeigen in der jeweils gesetzten Farbe
Aus
Auftrag: Lampe ausschalten
vorher : -
nachher: leuchtet nicht
---------------------------------------------------------------------- *)
IMPLEMENTATION
// ====================================================================
constructor TLampe.Create;
// --------------------------------------------------------------------
begin
inherited Create; // erstmal den geerbten Kreis erzeugen
SetRadius(10);
end;
procedure TLampe.Ein;
// --------------------------------------------------------------------
begin
Zeigen;
end;
procedure TLampe.Aus;
// --------------------------------------------------------------------
begin
Loeschen; // leuchtet nicht
end;
END. |
|
s. Vorlage
s. Hinweis zur
Implementation!
|