--- ---
If, for any reason, you want to detach (remove) the code you have written in an event handler, you have to set the event handler to nil.
procedure TForm1.Button1Click(Sender: TObject) ; begin ShowMessage('Who clicked?') ; //remove event handler from event Button1.OnClick := nil; end;
To re-assign the procedure Button1Click to the button's OnClick event, you should use:
Button1.OnClick := Button1Click;