Erweiterung der Anforderungsdefinition für Knöpfe

Ein Vergleich mit kommerziellen Programmen lässt es sinnvoll erscheinen, die Funktionalität der Knöpfe zumindest etwas zu erweitern:

Damit ergibt sich folgende Anforderungsdefiniton für die Knöpfe:

Protokoll der Dienste / Methoden der abstrakten Klasse TKnopf

Konstruktor  init ( pX,pY,pGroesse:Zahl; pAufschrift:Zeichenkette; pMaus:Maus )
Der Konstruktor erzeugt das Objekt und gibt dabei die Parameter weiter.

Auftrag  aktiviere
Setzt den Aktivierungszustand auf wahr. Ab jetzt können die Knöpfe auf
Drücken reagieren.
Die Farbe des Knopfes wird auf grün gesetzt, Die Schrift wird schwarz und fett.

Auftrag  deaktiviere
Setzt Den Aktivierungszustand auf falsch. Ab jetzt können die Knöpfe nicht
mehr auf Drücken reagieren.
Die Farbe des Knopfes wird auf hellgrau, die Schrift auf dunkelgrau und normal gesetzt.

Auftrag  loesche
Löscht das Bild des Knopfes vom Bildschirm durch Überschreiben in der
Hintegrundfarbe.

privater Auftrag setzeFarbe ( pFarbe:ganzeZahl )
Setzt die Farbe und zeichnet den Knopf neu, wenn die Farbe gewechselt wurde.

abstrakter Auftrag  zeichne
klar

Anfrage angeklickt : Wahrheitswert
Prüft, ob dei Maus über dem Knopf vorher gedrückt und jetzt losgelassen
wurde.
Ist der Knopf gedrückt und noch nicht wieder losgelassen und die Maus innerhalb des Knopfes, dann wird sein Rand dick dargestellt, andernfalls
wird er normal gezeichnet.

Anfrage  gedrueckt : Wahrheitswert
Prüft, ob die Maus über dem Knopf gedrückt ist.
Ist der Knopf gedrückt, wird sein Rand dick dargestellt, andernfalls normal.

abstrakte Anfrage innerhalb : Wahrheitswert
Prüft, ob die Maus gerade über dem Knopf ist.

Destruktor  gibFrei:
Löscht den Knopf auch vom Bildschirm.

Ein eigenes Projekt genau mit diesen Anforderungen existiert nicht. Die Knöpfe im Projekt der nächsten Seite entsprechen aber diesen Anforderungen.