2015-04-04 129 views
0

我想知道是否有任何方法将组件的事件(As .OnClick)链接到数据模块中定义的过程(在设计阶段)。 目前,我在运行时这样做:从另一个窗体访问DataModule事件(delphi设计时)

MyButton.OnClick := MyDataModule.MyOnClickEvent; 

的目标将是在Object Inspector窗口在下拉列表中提出,得到MyDataModule.MyOnClickEvent。 在此先感谢所有谁将会分享他们的知识:d

注1: 这里有一个类似的问题,但目前还没有关于信息如何在设计时完成同样的任务: Access an event on a DataModule from another Form

注2: 我发现的唯一途径在于定义一个父窗体上的所有事件,但我希望有一个更清洁的解决方案

回答

1

据我所知,这样的事情是不可能的。

也许有一些插件,但我怀疑它。为什么?

想象一下当您尝试在一个包含表单和数千个事件的项目上使用类似的东西时,会返回的所有线索。

另外你会怎么处理,当你有不同的形式同名的多个事件?

+1

我同意,一个datamodule属性的单词'click'在它没有多大意义,因为没有什么可以在运行时在数据模块中点击... – 2015-04-04 23:19:30

+0

只有属于数据模块的事件单位在使用条款将返回。正如组件发生的那样,在将数据模块的单元添加到uses子句后,可以将表单的组件链接到数据模块的组件 - >在下拉列表中,您可以看到“MyDataModule.MyComponent”。 – Hwau 2015-04-05 21:41:34

0

在DataModule中定义一个已发布的方法以充当事件处理程序。其签名必须匹配TNotifyEvent

确保DataModule的单元位于组件的父Form单元的interfaceuses子句中。

确保在创建父窗体之前创建DataModule。

+1

在数据模块类中,我添加了: 已发布 过程OnClickTest(发件人:TObject);. 在表格单元中,我添加了 用途 uMyDataModuleUnit。 “OnClickTest”事件不在下拉列表中,我做错了什么?谢谢。 – Hwau 2015-04-05 21:32:34

相关问题