um mich in Lazarus / FP einzufummeln, stricke ich mir gerade einen ... Taschenrechner (ja, ich weiß, sehr kreativ

Code: Alles auswählen
unit Rechnerformular;
interface
type
TForm1 = class(TForm)
...
Button0: TButton;
...
Button9: TButton;
procedure Button0Click(Sender: TObject);
...
procedure Button9Click(Sender: TObject);
...
private
{ private declarations }
Rechner : TRechner; // Separate Klasse, die die Funktionalität kapselt
Procedure eingabeErfolgt(Sender:TObject); // Regelt das Zusammenspiel mit 'Rechner'
...
end;
...
{Der folgende Code stört mich, weil jede Procedure nur dasselbe leistet. Er ist einfach nur redundant}
procedure TForm1.Button0Click(Sender: TObject);
begin
eingabeErfolgt(Sender);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
eingabeErfolgt(Sender);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
eingabeErfolgt(Sender);
end;
...
procedure TForm1.eingabeErfolgt(Sender:TObject);
var
zeichen:char;
begin
if Sender is TButton then
zeichen := (Sender as TButton).Caption[1];
Rechner.anfuegen(zeichen); //Übergibt das Zeichen,
//welches auf dem Button ist an Rechnerobjekt
end;
end.
Gibt es in Lazarus einen ähnlichen Trick?