EhLib DBGridEh滚动故障

时间:2012-03-23 10:47:16

标签: delphi delphi-7 dbgrid


我在我的应用程序中使用EhLib DBGridEh,当我开始使用滚动条滚动它时,我遇到了高位问题。
如果我没有在网格中选择单元格,那么highliting将正常工作 但是,如果我选择单元格并使用 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
  10. OptionsEh

    1. dghFixed3D
    2. dghResizeWholeRightPart
    3. dghHighlightFocus
    4. dghClearSelection
    5. dghMultiSortMarking
    6. dghEnterAsTab
    7. dghRowHighlight

1 个答案:

答案 0 :(得分:2)

这是DBGrid的一个功能。如果它有多选区域,它会停止行高亮,以避免在选区域和突出显示当前行的单元格之间产生误解。

Dmitry Bp>