Hi,
Indem du OnClick aufrufst, überprüfst du nicht, ob der Button geklickt wurde. Stattdessen rufst du den Eventhandler für das Klickereignis des Buttons auf. Auf deutsch: OnClick checkt nicht, ob der Button geklickt wurde, sondern befiehlt ihm, sich so zu benehmen als sei das der Fall. Dem Ereignis OnClick gehört per Deklaration
type TNotifyEvent = procedure(Sender: TObject) of object;
der Parameter Sender an. Da steht dann drin, wer das Ereignis ausgelöst hat.
Eine Möglichkeit für dich wäre vielleicht, die Klick-Botschaft des Windows-Kernels abzufangen. Das ist aber (glaub ich) viel Aufwand und wohl auch ein bisschen Overkill.
Vielleicht jemand noch ne bessere Idee?