2015-04-04 77 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

相關問題