2013-10-18 9 views
2

저는 TTrayicon을 Delphi XE2에서 사용하고 있습니다. 마우스 오른쪽 버튼 클릭 이벤트를 제어 할 수있는 방법이 있는지 궁금합니다. 클릭 이벤트를 시도했지만 할 수 없습니다.TrayIcon 마우스 오른쪽 버튼 클릭 이벤트

+3

'TTrayIcon'의 코드는 나를 슬프게합니다. 'GetCursorPos'에 대한 모든 바보 같은 호출. VCL의 많은 부분이 입력 메시지를 이해하지 못하는 사람들이 작성한 것처럼 보입니다. –

답변

4

당신은 onMouseUp에에 이벤트 핸들러를 할당 할 수 있습니다. 단추 매개 변수를 사용하여 눌려진 단추를 찾으십시오.

+0

OnMouseDown과 OnMouseUp 모두 사용할 수 있지만 올바른 것입니다. OnMouseUp을 사용하면 트레이 아이콘이 표준 윈도우 트레이 아이콘 (볼륨, 네트워크 등)처럼 정확하게 작동합니다. 나는 곧바로 대답을 편집 할 것이다. –

+1

이 질문에 대한 올바른 답변입니다. 그러나 팝업 메뉴를 표시하려면 Polymorphin이 정확해야합니다. 마우스 오른쪽 버튼 클릭에 대한 응답으로 팝업 메뉴를 표시하는 것 이외의 다른 작업을하고 있다면 아마도 뭔가 잘못하고있을 것입니다. 사용자가 키보드를 사용하여 마우스 오른쪽 버튼을 클릭하려고해도 'OnMouseUp' 이벤트가 발생합니다. 'TTrayIcon'가있는 쉘 API의 원래 설계에서 한계점에 이릅니다. –

+0

테스트를 마쳤으며 완벽했습니다. 감사 – elcharlie

1

TPopupMenu을 TrayIcon에 연결합니다.

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

+0

질문에 대한 팝업 메뉴에 대해 어떻게 압니까? 이 질문에 단 한가지 언급은 없습니다. @Polymorphin, 그냥 힌트, 만약 당신이 이미지를 이런 식으로 연결한다면'[! [여기에 이미지 설명을 입력하십시오] [1]] [1]'이미지를 클릭 할 수있게 할 것입니다. * ;-) – TLama

+2

팁 주셔서 감사합니다. 나는 그가 트레이시 콘 관련 이벤트를 클릭하는 방법을 알고 싶어하고 popupmenu가 이것에 가장 쉬운 방법이라고 생각한다. – Hidden