is-Logo Einführung in Delphi
Übung 1.1 - Algorithmen

S. Spolwig


[Home | Unterrichtssequenzen]

page_dowm

Neues Projekt: Baustellenampel

Diese Übung soll die erste Übung erweitern mit zusätzlichen GUI-Komponenten. Sie soll etwas darstellen, das wie eine Ampel aussieht.  Sie soll eine primitive manuelle Schaltung haben wie an einer Straßenbaustelle, wo ein Mann die Ampel per Hand steuert. Die Ampel hat die drei Lampen Rot, Grün und Gelb und zum Schalten für jede Lampe einen Button.

Übung 1.1 - Schleifen
(Zählschleife, vor- und nachprüfende Schleife)

Blinken

Als Erweiterungen soll eine Blinkschaltung für die gelbe Lampe eingebaut werden. Dazu wird ein neuer Button: BlinkBtn eingebaut und eine private Methode Blinken1. Der Button-Click ruft die Blinken-Methode auf, die dann ausgeführt wird:

procedure TFensterFrm.BlinkBtnClick(Sender: TObject);
begin
  Blinken1;
end;

Das Blinken selbst lässt sich leicht mit einer Schleife realisieren, die dafür sorgt, dass die gelbe Lampe im Wechsel 'an' oder 'aus' gezeigt wird mit einer kleinen Pause dazwischen.
Im Gegensatz zu GUI-Methoden, die immer durch Doppelklick erzeugt werden müssen, werden private Methoden, die irgendwelche Verarbeitungen erledigen von Hand im Implementation-Teil geschrieben.

procedure TFensterFrm.Blinken1;
// --------------------------------------------------
var zaehler : integer;

begin
  GelbPnl.Color := clYellow;

  for zaehler := 1 to 10 do  // 10 mal - Zählschleife
  begin
    GelbPnl.Color := clYellow;
    Zeit.SetPause(200);
    GelbPnl.Color := clBlack;
    Zeit.SetPause(200);
  end;
end;

Die Methode SetPause(200) ist in der Klasse TZeit enthalten, die wir als zusätzliche Unit importieren müssen.
Fügen Sie dazu bei im Interface-Teil bei uses hinzu: uZeit.

Außerdem verlangt DELPHI, dass alle privaten Methoden im Interface-Teil unter der Zeile private deklariert werden müssen:

procedure Blinken1;

Das war 's!

(Zu Risiken und Nebenwirkung fragen Sie Ihren Nachbarn oder Lehrer ;-)

--------------------------------------------------------------------------

Wenn die Zählschleife fehlerfrei läuft, schreiben Sie bitte zwei weitere Methoden

Blinken2
(while - do) und 
Blinken3
(repeat - until)!

Da diese Schleifen keine voreingestellte Wiederholzahl haben, prüfen sie jedesmal die aktuelle Abbruchbedingung. Dazu führen wir eine Zustandsvariable BlinkenAus : boolean ein, die mit einem neuen Aus-Button auf den Wert true gesetzt wird.

procedure TFensterFrm.AusBtnClick(Sender: TObject);
// ------------------------------------------------
begin
  BlinkenAus := true;
end;

Nicht vergessen : Doppelklick auf den AusBtn!!!

'Ampel'

'Ceci n'est pas
une lampe'

Hinweise:

Startwerte festlegen:
Eine einfache Methode besteht darin, dass im Objektinspektor bei der entsprechenden Eigenschaft schon ein Wert eingetragen wird, z. B. beim RotPnl - Color : clBlack.



©    05. Oktober 2008    Siegfried Spolwig

page_top