그리드 컨트롤을 작성했으며 마우스 휠에 대한 지원을 추가하려고합니다. DoMouseWheel 가상 메서드를 재정의하는 것만 큼 간단 할 것이라고 생각했지만 문제가 조금 있습니다.한 번에 한 줄씩 스크롤하려면 DoMouseWheel을 어떻게 사용합니까?
제어판에서 한 번에 스크롤 할 줄 수를 설정할 수 있으며 기본값은 3입니다. 그리고 이것은 문서 또는 웹 페이지를 스크롤 할 때 완벽한 의미를 지니지 만 그리드 상에서는 한 번에 한 줄씩 스크롤하는 것이 좋다고 생각합니다. 그러나 Delphi의 휠 지원은 스크롤하는 모든 노치에 대해 DoMouseWheel을 3 번 호출합니다. 즉, 그리드의 각 세 번째 줄 (또는 그 전역 설정이 무엇이든간에)으로 스크롤 할 수 있다는 의미입니다.
마우스 휠을 돌릴 때마다 한 번에 한 줄씩 스크롤하는 방법은 무엇입니까?
업데이트 : 간단히 대답하면 스크롤 후 Result를 True로 설정하면 스크롤이 3 번되지 않고 한 번만 스크롤됩니다.
눈에 띄었다 구현에 대한 아무것도 없었다. 그러나 당신의 충고에 따라 다시 한번 살펴 보았습니다. 스크롤 한 후에 단순히 True를 반환하는 것으로 밝혀졌습니다 (상속 된 후 반환 됨).이 함수는 한 번만 함수를 호출했습니다. –
@ 코부스 : 물론, 기능을 재정의하는 경우 상속 된 코드를 호출하는 것이 올바른지 여부를 확인해야합니다. 그래서 VCL 그리드 구현을 복사하는 것이 좋습니다. 올바른 일입니다. 나는 너의 구현을 보지 못했고, 나는 영매가 아니다. – mghie