내 응용 프로그램에 EhLib DBGridEh을 사용하고 스크롤 막대를 사용하여 스크롤을 시작할 때 highliting에 문제가 발생했습니다.
그리드에서 셀을 선택하지 않으면 하이라이트가 올바르게 작동합니다.
그러나 셀을 선택하고 ScrollBar을 사용하여 스크롤을 시작하면 하이라이트 될 것입니다. 전체 원시 및 이전 원시 대신 하나의 셀만 하이라이트됩니다.
사진에서 볼 수 있습니다.
EhLib DBGridEh 스크롤 문제
마우스 휠을 사용하여 그리드를 스크롤 할 때도 같은 상황이 발생했습니다. 이 문제는 응용 프로그램 메시지 처리를 추가하여 해결되었습니다.
- dgEditing
옵션 - dgTitles
- dgColumnResize
- dgIndicator :
procedure TMainForm.AppEventHandlerMessage(var Msg: tagMSG; var Handled: Boolean); var i: SmallInt; begin if Msg.message = WM_MOUSEWHEEL then begin Msg.message := WM_KEYDOWN; Msg.lParam := 0; i := HiWord(Msg.wParam) ; if i > 0 then Msg.wParam := VK_UP else Msg.wParam := VK_DOWN; Handled := False; end; end;
내 그리드에서 사용할 수있는 속성의 전체 목록이 있습니다
- dgRowLines
- dgTabs
- dgAlwaysShowSelection
- dgMultiSelect
OptionsEh
- dghFixed3D
- dghResizeWholeRightPart 0 dgColLines
- dghHighlightFocus
- dghClearSelection는
- dghMultiSortMarking
- dghEnterAsTab
- dghRowHighlight
난 당신이'dgEditing' 당신이 이렇게 셀을 선택 전체 행을 편집 할 수 있기 때문에'dgRowSelect'를 오버라이드 (override) 할 필요가 무엇을 사용할 수있다 생각합니다. 마우스로도 전체 행이 아닌 셀을 선택할 수 있습니까? – TLama
예, 할 수 있습니다. 그리고'dgEditing'도 가능하지만'dgRawSelect'는 사용할 수 없습니다. –
방금 EhLib DbGridEh - AllowedSelections의 매우 흥미로운 속성을 발견했습니다. 여기에'gstRecordBookmarks','gstRectangle','gstColumns','gstAll' 값을 설정할 수 있습니다. 언뜻보기에는 스크롤링이 올바르게 작동합니다. –