2011-08-10 30 views
1

我有一個工具按鈕和分配給它的動作。但是該操作沒有點擊事件,沒有點擊代碼。爲此,該按鈕被禁用,如何將其更改爲啓用?德爾福:工具按鈕和動作 - 有趣

謝謝!

+0

我猜你正在使用按鈕作爲複選框? – Kromster

+2

如果您冒險進入動作列表的奇妙世界,我可以強烈推薦Ray Konopka(Raize組件套件的作者)的文章「有效使用動作列表」:http://edn.embarcadero.com/article/27058 He以前在他自己的網站上有三篇文章,但在embarcadero上只有一篇,但它可能是「合併」版本(沒有原文手冊)。 –

+0

@ Marjan Venema,謝謝! – maxfax

回答

8

如果某個操作沒有OnExecute處理程序,則該操作始終處於禁用狀態。如果您想要將動作分配給對象,並且啓用該對象,則需要提供一個OnExecute處理程序。

雖然這個問題聽起來有點奇怪。爲什麼你會有一個按鈕,當按下時什麼也不做?你也許,有一個OnClick處理程序是在按鈕而不是動作中定義的?如果是這樣,那麼你應該簡單地把這個處理程序移到行動中,一切都會好的。

更新

烏爾裏希有益指出的TActionDisableIfNoHandler可用於改變上述的行爲。由於這種方法具有公開的可見性並且未發佈,因此您必須對代碼進行更改,這就是爲什麼我認爲我忘記了它的原因。

+0

謝謝!該按鈕的主要思想 - 是否被檢查(真/假)。還有其他的按鈕 - 他們有事要做:) – maxfax

+6

@David,我想你忘了[DisableIfNoHandler](http://docs.embarcadero.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/EN/html/delphivclwin32 /ActnList_TCustomAction_DisableIfNoHandler.html)。 –

+1

嗯,今天我學習了一點delphi瑣事,謝謝Ulrich。 –