Я использую EhLib DBGridEh в своем приложении, и у меня возникают проблемы с выделением, когда я начинаю прокручивать его с помощью полосы прокрутки.Если я не выберу ячейку в сетке, выделение будет работать правильно.Но если я выберу ячейку и начну прокручивать, используя ScrollBar , тогда будет выделена только одна ячейка вместо целого необработанного, а также будет выделено предыдущее необработанное.Это вы можете увидеть на картинке.
Всего несколько недель назад у меня была такая же ситуация, когда я прокручивал сетку с помощью колесика мыши.Эту проблему я решил, добавив обработку сообщений приложения.
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;
Существует полный список свойств, которые включены в моей сетке: Опции
- dgEditing
- dgTitles
- dgIndicator
- dgColumnResize
- dgColLines
- dgRowLines
- dgTabs
- dgAlwaysShowSelection
- dgMultiSelect
ОпцииEh
- dghFixed3D
- dghResizeWholeRightPart
- dghHighlightFocus
- dghClearSelection
- dghMultiSortMarking