>>399
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage('hogehoge');
 Button1Click(Sender);
end;

これで、無限ループになるよ。

Senderは複数のコンポーネントで1つのイベントを共用するとき、
どのコンポーネントから呼び出されたのか調べるのに使ったりする。

たとえば、この場合、TButton(Sender).Nameで名前が取り出せる。