Mega Code Archive
Reassigning events at runtime
Question:
How can I reassign an event at runtime?
Answer:
The following example demonstrates reassigning an event.
procedure TForm1.Button1Click(Sender: TObject);
var
Button2SavedEvent : TNotifyEvent;
Button3SavedEvent : TNotifyEvent;
begin
{Save the events}
Button2SavedEvent := Button2.OnClick;
Button3SavedEvent := Button3.OnClick;
{Clear button 2's OnClick event}
Button2.OnClick := nil;
{Set button 3's OnClick to Button2's old OnClick Event}
Button3.OnClick := Button2SavedEvent;
{ Do something here }
{Take us back to the original events}
Button2.OnClick := Button2SavedEvent;
Button3.OnClick := Button3SavedEvent;
end;