I would like to know if there's any way to link a component's event (As .OnClick) to a procedure defined in a datamodule (At design-time). At the moment, I'm doing this at runtime:
MyButton.OnClick := MyDataModule.MyOnClickEvent;
The goal would be that to get MyDataModule.MyOnClickEvent proposed in the dropdown lists in the Object Inspector Window. Thanks in advance to all who will share their knowledge :D
<strong>Note1:</strong> Here's a similar question, but there are no informations about how to accomplishing the same task at design-time: <a href="https://stackoverflow.com/questions/906853/access-an-event-on-a-datamodule-from-another-form" rel="nofollow">Access an event on a DataModule from another Form</a>
<strong>Note2:</strong> The only way I found consists in define all events on a parent-form, but I was hoping there was a cleaner solutionAnswer1:
As far as I know something like this is not possible.
Perhaps with some addons but I doubt it. Why?
Imagine all the cluter that would be returned when you try using something like this on a project with hudreds of forms and thousands of events.
Also how would you deal when you would have multiple events on different forms with same name?Answer2:
Define a <strong>published</strong> method in the DataModule to act as the event handler. Its signature must match
Make sure the DataModule's unit is in the
uses clause of the component's parent Form unit.
Make sure the DataModule is created before the parent Form is created.