How to detach and re-attach an event
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;