2013-10-18 169 views
2

我在Delphi XE2中使用TTrayicon,並且想知道是否有任何方法來控制右鍵單擊事件。 我嘗試了點擊事件,但我不能TrayIcon右鍵單擊事件

+3

'TTrayIcon'的代碼讓我很難過。所有那些愚蠢的調用'GetCursorPos'。它看起來好像VCL的大部分是由不懂輸入消息的人編寫的。 –

回答

4

您可以將事件處理程序OnMouseUp。使用按鈕參數來找出哪個按鈕被按下。

+0

OnMouseDown和OnMouseUp都可以使用,但你是對的。如果您使用OnMouseUp,托盤圖標的行爲與標準Windows托盤圖標(音量,網絡等)完全相同。我將立即編輯答案。 –

+1

這是問題的正確答案。但是,如果你想顯示一個彈出菜單,那麼多態性是準確的。如果您只是在響應右鍵單擊時顯示彈出式菜單,您可能會做錯事。請注意,即使用戶嘗試使用鍵盤右鍵點擊,OnMouseUp事件也會觸發。這是在TTrayIcon所代表的shell API的原始設計中的一個限制。 –

+0

我測試過了,都完美無缺。謝謝 – elcharlie

1

TPopupMenu與TrayIcon關聯。

http://i.stack.imgur.com/nkEvb.png

+0

你怎麼知道這個問題是關於彈出菜單?在這個問題中沒有單獨提及它。 @Polymorphin,只是一個提示,如果你用這種方式鏈接圖像'[![enter image description here] [1]] [1]'它會使圖像*「點擊」* ;-) – TLama

+2

感謝您的提示。我只是覺得他想知道如何點擊一個托盤圖標關聯一個事件,而popupmenu是最簡單的方法。 – Hidden