Ein Event (also beispielsweise ein Klick eines Buttons) ist in
VCL-Komponenten als Zeiger auf eine Methode deklariert. Um jetzt bei einem Button-Click wirklich Code auszuführen, muss die Instanz der Komponente ja wissen, was sie ausführen muss. Dafür wird eine eigene Methode geschrieben (deine ButtonClick-Methode) und einen Zeiger auf diese Methode als Event gesetzt.
Wäre das nicht möglich, müsstest du für
jeden Button, den du benutzt, eine eigene Klasse von TButton ableiten.