노드를 클릭하거나 노드 항목 (즉, 더하기 기호 옆에있는 해당 텍스트 항목)을 두 번 클릭하는 이벤트는 어떻게 트리 뷰에서 추적 할 수 있습니까?TreeView에서 노드를 클릭하고 더블 클릭하는 것을 어떻게 감지합니까?
답변
일반적으로 컨트롤을 클릭하거나 두 번 클릭하면 OnClick
및 OnDblClick
이벤트가 발생합니다. 클릭 한 특정 노드를 찾으려면 컨트롤의 GetNodeAt
메서드를 마우스의 현재 좌표와 함께 사용하십시오.
GetMessagePos
으로 클릭했을 당시의 좌표를 얻을 수 있습니다. Mouse.CursorPos
을 읽으면 속성을 읽었을 때의 좌표가 표시되며, 시스템에 어떤 종류의 부하가있는 경우 클릭 시간과 크게 다를 수 있으며, 그렇지 않은 위치에서 클릭이 감지 될 수 있습니다 심지어 당신의 통제 범위 내에서.
실제 예제를 제공해 줄 수 있습니까? 나는 그것을 클릭 할 때 노드가 갖는 좌표를 파악하는 방법조차 모른다. – Mikhail
노드의 좌표를 알아낼 필요가 없습니다. 앞서 말한 것처럼 GetMessagePos를 호출하여 클릭 좌표를 찾은 다음 GetNodeAt를 호출하여 해당 노드가있는 경우 해당 노드가 있는지 확인합니다. –
GetMessagePos의 위/아래 단어가 커서의 화면 위치 였고 TTreeControl.ScreenToClient를 사용하여 TTreeControl.GetNodeAt (...)에 입력 할 수있는 TTreeView 컨트롤에 상대적인 좌표로 변환해야했습니다. – Duncan
일반적인 OnClick
및 OnDblClick
이벤트를 사용하고 현재 노드 항목을 확인하십시오.
http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.ComCtrls.TCustomTreeView.Selected
도 연결 예를 참조하십시오.
하지만 VirtualTreeView를 사용하는 것이 좋습니다.
당신의 대답은 나의 것과 동일합니다. 그래서, 내 것을 지우고 그것을 가질 수 있습니다. 그러나 전혀 다른 구성 요소를 사용하는 오프 주제에 대해서는 -1입니다. –
누가 1 위를 게시 했는가가별로 다르지 않으므로 삭제가 필요하지 않습니다. 그러나 (내가 한) 질문에 대답 한 후 추가 제안을 추가 할 수 있습니다. –
동일한 답변이 여러 개 나오는 점은 없습니다. 문제가 복잡해지지 않도록 기꺼이 삭제하겠습니다. 그러나 완전히 다른 구성 요소를 제안하는 것은 급진적입니다. 아마도 의견으로,하지만 그것은 대답에 아무런 도움이되지 않습니다. –
- 1. 시작 단추를 마우스로 클릭하는 것을 어떻게 감지합니까?
- 2. 체크 박스를 클릭하고 더블 클릭하는 방법
- 3. Silverlight Treeview에서 노드를 어떻게 비활성화합니까?
- 4. LinkButton이 UpdatePanel 내에서 더블 클릭하는 것을 방지합니다.
- 5. treeview에서 노드를 선택하십시오.
- 6. WPF에서 마우스 더블 클릭을 어떻게 감지합니까?
- 7. TreeView에서 루트 노드를 숨기는 방법?
- 8. WPF-TreeView에서 루트 노드를 선택하십시오.
- 9. dynatree에서 행 요소를 클릭하는 것을 허용하는 방법
- 10. 커서 위치에서 더블 클릭하는 방법
- 11. 창이 닫히는 것을 감지합니까?
- 12. AutoLISP에서 AutoCAD가 플로팅 된 것을 어떻게 감지합니까?
- 13. Android 연락처가 변경된 것을 어떻게 감지합니까?
- 14. CSS 이미지가로드 된 것을 어떻게 감지합니까?
- 15. Cocos2D에서 손가락이 눌려있는 것을 어떻게 감지합니까?
- 16. 예를 클릭하고 창에서 취소 버튼을 클릭하는 방법
- 17. 장치가 꺼지는 것을 감지합니까?
- 18. 화면이 스크롤되는 것을 감지합니까?
- 19. Selenium을 클릭하고 로봇을 클릭하는 것의 차이
- 20. TreeView에서 루트 노드를 동적으로 추가하는 방법
- 21. C에서 treeview에서 노드를 다시 해제하는 방법 #
- 22. 리피터 행을 더블 클릭하는 방법은 무엇입니까?
- 23. html 요소가 자식 노드를 추가 할 수있는 경우 어떻게 감지합니까?
- 24. 프로그래밍 방식으로 노드를 클릭하는 방법은 무엇입니까?
- 25. 버튼을 어떻게 감지합니까?
- 26. JointJs 사각형을 두 번 클릭하는 것을 방지하려면 어떻게해야합니까?
- 27. jstree를 두 번 클릭하는 방법은 무엇입니까?
- 28. 브라우저가 html5를 어떻게 감지합니까?
- 29. 사용자가 Wordpress에서 '비밀번호 찾기'워크 플로를 통과 한 것을 어떻게 감지합니까?
- 30. SavingChanges의 엔터티 내에서 컬렉션이 변경된 것을 어떻게 감지합니까?
http://docwiki.embarcadero.com/VCL/2010/en/ComCtrls.TCustomTreeView.OnChange http://docwiki.embarcadero.com/CodeExamples /XE2/en/VCL.ResXplorer_Sample http://lazarus-ccr.sourceforge.net/docs/lcl http://lazarus-ccr.sourceforge.net/docs/lcl /comctrls/tcustomtreeview.onselectionchanged.html 그러나 VirtualTreeView를 더 잘 사용하십시오. –
Delphi 7에는 OnSelectionChanged와 같은 것이 없습니다. – Mikhail