有没有办法在拖动垂直滚动条拇指按钮时移动
TDBGrid
的内容(而不是仅在释放后移动内容)?
我发现了一个名为
ScrollTrack
的 DBGrid
属性,但我猜那是 .Net? Delphi/C++Builder 有类似的东西吗?或者有一种方法可以让它在拖动拇指按钮时滚动内容?
蒂亚!!
您可以使用 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 之后的某个位置。