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

nr9pn0ug  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(118)

有没有一种方法可以在拖动垂直滚动条拇指按钮时移动TDBGrid的内容(而不是只在释放后移动内容)?
我找到了一个叫做ScrollTrack属性的DBGrid,但我猜那是.Net? Delphi /C++Builder中是否有类似的功能?或者是一种让它在拖动拇指按钮时滚动内容的方法?
TIA!!

u4dcyp6a

u4dcyp6a1#

您可以使用Interposer Class来完成此操作。
使用以下内容创建新单元:

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 * 后面的某个地方将这个单元添加到接口uses子句中。

相关问题