Knöpfe werden abgefragt

Der folgenden Aufgabe liegt das Projekt Knopf_Muehle_1 zu Grunde

Lesen bzw. Download des Textes von Aufgabenblatt 1:

Download des Projektes

Beim Starten des Programms sind zwei sich drehende Windmühlen, zwei kreisförmige Knöpfe und ein rechteckiger Knopf zu sehen:

Es folgen nun Antworten zu Aufgabe 1 des Aufgabenblattes:

Funktionalität der Knöpfe:

Kreis-Knopf + : Wenn man auf diesen Knopf drückt, drehen sich die Mühlen schneller. Das geschieht so lange, wie man den Knopf gedrückt hält. Er wirkt also wie ein Taster oder Klingelknopf. Der Kreis-Knopf - reagiert analog, nur werden die Windmühlen langsamer.

Knopf Ende: Drückt man auf diesen Knopf, wird das Programm beendet. Am Programm selbst kann man nicht feststellen, ob es sich um einen Taster oder einen Schalter handelt.

Vollständiges Beziehungsdiagramm der beteiligten Klassen bzw. Objekte:

Anmerkungen zum Projekt:

Das Projekt wird (fast) ganz von der Klasse TAnwendung gesteuert. Die Knöpfe sind lediglich in der Lage festzustellen, ob sie selbst gedrückt worden sind. Dies wird am Quelltext der Methode run der Klasse TAnwendung deutlich:

Methode run der Klasse TAnwendung:


KSchneller wird befragt




KLangsamer wird befragt







KEnde wird befragt
procedure TAnwendung.run;
begin
   repeat
         if KSchneller.angeklickt then 
            begin
               Muehle1.schneller;
               Muehle2.schneller;
            end
         else if KLangsamer.angeklickt then 
            begin
               Muehle1.langsamer;
               Muehle2.langsamer;
            end;
         muehle1.drehe;
         muehle2.drehe;
         dieUhr.warte(10)
   until KEnde.angeklickt
end;

 

Beschreibung der Dienste der Klasse TKreisKnopf:

Konstruktor  init ( pX,pY,pGroesse:Zahl; pAufschrift:Zeichenkette; pMaus:Maus ):
Erzeugt einen kreisförmigen Knopf und zeichnet ihn auf dem Bildschirm.
pX und pY geben die Koordinaten des Kreismittelpunktes, pGroesse den Kreisradius an. pAufschrift ist der Text, der auf dem Bildschirm im Kreis zu sehen ist. pMaus ist die Maus der Anwendung, die zur Abfrage beim Dienst 'angeklickt' benötigt wird.

Auftrag  loesche:
Löscht nur das Bild des Knopfes vom Bildschirm.

Auftrag  zeichne
Zeichnet ein Bild dse Knopfes auf dem Bildschirm.

Anfrage  angeklickt : Wahrheitswert
Ist wahr, wenn die Maus innerhalb der Fläche des Knopfes gedrückt ist.

Destruktor  gibFrei
Destruktor, der auch den Knopf vom Bildschirm löscht.

 

Wofür werden die Attribute der Klasse TRechteckknopf benötigt:

hatStift : BuntStift:
damit zeichnet sich der Knopf selbst.

kenntMaus : Maus
Wird benötigt, um bei der Anfrage angeklickt feststellen zu können, ob die Maus innerhalb des Knopfes angeklickt wurde.

zGroesse : Zahl
Damit ist der Radius des Kreisknopfes angegeben. Er kann also vom Programmierer festgelegt werden.

zXPos : Zahl
Die x-Koordinate des Kreismittelpunktes

zYPos : Zahl
Die x-Koordinate des Kreismittelpunktes.

zAufschrift : Zeichenkette
klar: Die Aufschrift des Knopfes.