EhLib DBGridEh Проблемы с прокруткой - PullRequest
1 голос
/ 23 марта 2012

Я использую EhLib DBGridEh в своем приложении, и у меня возникают проблемы с выделением, когда я начинаю прокручивать его с помощью полосы прокрутки.Если я не выберу ячейку в сетке, выделение будет работать правильно.Но если я выберу ячейку и начну прокручивать, используя ScrollBar , тогда будет выделена только одна ячейка вместо целого необработанного, а также будет выделено предыдущее необработанное.Это вы можете увидеть на картинке.Scrolling bug

Всего несколько недель назад у меня была такая же ситуация, когда я прокручивал сетку с помощью колесика мыши.Эту проблему я решил, добавив обработку сообщений приложения.

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;

Существует полный список свойств, которые включены в моей сетке: Опции

  1. dgEditing
  2. dgTitles
  3. dgIndicator
  4. dgColumnResize
  5. dgColLines
  6. dgRowLines
  7. dgTabs
  8. dgAlwaysShowSelection
  9. dgMultiSelect

ОпцииEh

  1. dghFixed3D
  2. dghResizeWholeRightPart
  3. dghHighlightFocus
  4. dghClearSelection
  5. dghMultiSortMarking

1 Ответ

2 голосов
/ 24 марта 2012

Это особенность DBGridEh.Если он имеет много выделенную область, он прекращает выделение строк, чтобы избежать недопонимания между выделенной областью и выделением ячеек текущей строки.

...