TDBGrid:移动拇指按钮时滚动内容?

问题描述 投票:0回答:1

有没有办法在拖动垂直滚动条拇指按钮时移动

TDBGrid
的内容(而不是仅在释放后移动内容)?

我发现了一个名为

ScrollTrack
DBGrid
属性,但我猜那是 .Net? Delphi/C++Builder 有类似的东西吗?或者有一种方法可以让它在拖动拇指按钮时滚动内容?

蒂亚!!

delphi c++builder tdbgrid
1个回答
0
投票

您可以使用 Interposer 类来完成此操作。

使用以下内容创建一个新单元:

unit DBGridHelper;

interface

uses
  Winapi.Messages, Winapi.Windows,
  Vcl.DBGrids;

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

implementation

procedure TDBGrid.WMVScroll(var Message: TWMVScroll);
begin
  inherited;
  if not (Focused or (InplaceEditor <> nil) and InplaceEditor.Focused) then Exit;
  if Datalink.Active then begin
    case Message.ScrollCode of
      SB_THUMBTRACK: DataLink.DataSet.RecNo := Message.Pos;
    end;
  end;
end;

end.

在包含应该具有此行为的 TDBGrid 的每个单元中,您需要将此单元添加到接口使用子句中 Vcl.DBGrids 之后的某个位置。

© www.soinside.com 2019 - 2024. All rights reserved.