TDbGrid.OnColumnMoved
이벤트 처리기에서 일부 열 머리글 색을 조정합니다.TDbGrid.OnColumnMoved에서 마우스 클릭을 버리는 방법
또한 격자의 OnTitleClicked
이벤트를 사용하여 (정렬 열) 메뉴를 팝업합니다.
불행히도 사용자가 열을 드래그하고 OnColumnMoved
이 끝나면 VCL은 OnTitleClicked
을 호출합니다. 즉, 열 정렬 후에 내 정렬 순서 팝업이 나타납니다.
방법이 있습니까 OnTitleClicked
가 호출되지 않도록 마우스 이벤트 큐를 지울 수 있습니까?
This thread에는이 코드가 있지만 OnTitleClicked
에는 Msg
이 없습니다.
while PeekMessage(Msg, 0, WM_MOUSEFIRST, WM_MOUSELAST,
PM_REMOVE or PM_NOYIELD) do;
(이 작업을 수행 할 수있는 방법이 없다면, 그것은 큰 문제가. 내가 OnTitleClick
그것에 다음 호출을 무시 너무 OnColumnMoved
에 플래그를 설정할 수 없습니다.)
'Msg : tagMsg' (또는'TMsg ') 변수를 선언하고'PeekMessage'를 호출 할 때 사용할 수 있다는 것을 알고 있습니까? 그 대답은 여기 있다고 생각하지 말고 단지 FYI ... –
흠 - 모든 OnColumnMoved 이벤트가 나를 위해 OnTitleClick 이벤트 (Delphi 10.1)를 트리거하지는 않으므로 플래그가 신뢰할 수 없습니다. 타이머를 사용할 수 있으므로 OnTitleClick이 OnColumnMoved에서 0.25 초 이내에 발생하면 무시됩니다. 그러나 그것은 벼룩을 죽이기 위해 쇠 망치를 사용하는 것과 같습니다. 이것에 대한 더 이상의 생각? – DaveBoltman