Delphi dbgrid连续滚动

nik*_*kel 6 delphi tdbgrid delphi-2010

我正在制作一个包含订单和打印发票的应用程序.我的表单上有一些标签,tedits,tmemos,按钮,数据源,adotable,popupmenu和dbgrid.

当我构建程序并向下滚动dbgrid滚动条时,它会在我释放鼠标按钮后滚动.但我想要连续滚动.

问候

Ser*_*yuz 10

这就是所谓的拇指追踪.派生一个新类来覆盖滚动行为.使用插入器类的示例:

type
  TDBGrid = class(DBGrids.TDBGrid)
  private
    procedure WmVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  end;

  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    ..

implementation

procedure TDBGrid.WmVScroll(var Message: TWMVScroll);
begin
  if Message.ScrollCode = SB_THUMBTRACK then
    Message.ScrollCode := SB_THUMBPOSITION;
  inherited;
end;
Run Code Online (Sandbox Code Playgroud)


WindowProc如果您不想派生新类,也可以替换控件.您需要做的就是处理WM_VSCROLL消息.是一个如何做到一点的例子.

  • @David - 非常可能..但是应该已经给开发者提供了选项.有时候所有的现场数据都会被缓存,因此没有必要进行拇指跟踪. (6认同)
  • 谢谢<blah blah 15个字符> (2认同)