Programm : Taschenrechner

Nun macht es sicher keinen Sinn, den Taschenrechner in Delphi neu zu erfinden. Aber man kann verschiedene Programmier-Techniken dabei üben: Beim Drücken einer Taste (Ereignis : Onclick) soll in der Anzeige die entsprechende Ziffer hinten angefügt werden. Das geht dadurch, dass man den alten Eintrag (Ausgabe.Text) durch einen neuen ersetzt.

Ausgabe.Text := Ausgabe.Text + Caption

Eine andere Möglichkeit ist, das sogenannte Tag der Komponente zu verwenden: Die 5-Taste erhält z.B. das Tag 5, jetzt als Ganzzahlwert zu verstehen, so dass obige Zeile lautet:

Ausgabe.Text := Ausgabe.Text + IntToStr(tag)

Die obigen Anweisungen könnten so formuliert werden, wenn man jeder Taste eine eigene OnClick-Behandlungsroutine geben würde, was aber bei  dieser Anzahl von Knöpfen langweilig wäre. Man definiert nur eine einzige Prozedur:

procedure TForm1.ZiffernBtnClick(Sender: TObject);
begin
   with (Sender as TButton) do Ausgabe.Text := Ausgabe.Text+Catption;
end;

Jetzt versteht man, warum jede Ereignis-Behandlung als Parameter einen Sender des Ereignisses erwartet: Damit markiert Windows das Objekt, das gerade angeklickt wird. Durch die Anweisung Sender as TButton wird ein allgemeines Objekt  umgewandelt in den speziellen Typ TButton, der z.B. auch die Eigenschaft tag oder caption besitzt. Der Wert dieser Eigenschaften kann dann im Programm elegant weiter verwendet werden.

Diese Prozedur wird im Formular angemeldet. Dann kann man sie mit der Ereignis-Behandlungsroutine OnClick jedes Knopfes verbinden. Ähnliches geschieht mit den anderen (Funktions-)Knöpfen: Hier kann man z.B. das tag dazu verwenden um das entsprechende Ereignis auszulösen.

Zurück zu Delphi

© Dietrich Praclik