Noch ein kleiner Tip der hier dazu passt:
Die Controls haben alle ein Property "Tag" (=Etikett) welche man frei verwenden kann.
Es wäre für den Taschenrechner möglich den jeweiligen Wert der Taste in dem "Tag" zu hinterlegen. Dann braucht man für alle OnClick nur noch eine Prozedur welche eben dann ""Tag" auswertet.
Gerne verwendet wird auch solcher code:
case (Sender as TControl).Tag of
0 : raise
Exception.Create('Tag wurde nicht zugewiesen");
1 : tue dies
2: tue das
end;