mgh*_*hie 4 delphi virtualtreeview
虚拟树视图垂直滚动的像素,不同的方式,标准德尔福网格,TListView和TTreeView(或大部分我所知道的其他此类管制的)滚动一行,并保持全线可见在任何时候控制的顶部.当我使用光标键进行导航时,根据方向,第一行或最后一行是完全可见的.使用鼠标滚动时无论如何都没有对齐.
例如,使用Delphi 2007和2009中的Structure窗口可以观察到此行为.
有没有办法设置许多属性以具有标准Windows控件的行为?或者是否有一组补丁来实现这一目标?
这就是我在Argalatyr的帮助下得出的结果,看起来它符合我的要求:
procedure TForm1.FormCreate(Sender: TObject);
begin
  VirtualStringTree1.ScrollBarOptions.VerticalIncrement :=
    VirtualStringTree1.DefaultNodeHeight;
end;
procedure TForm1.VirtualStringTree1Resize(Sender: TObject);
var
  DY: integer;
begin
  with VirtualStringTree1 do begin
    DY := VirtualStringTree1.DefaultNodeHeight;
    BottomSpace := ClientHeight mod DY;
    VirtualStringTree1.OffsetY := Round(VirtualStringTree1.OffsetY / DY) * DY;
  end;
end;
procedure TForm1.VirtualStringTree1Scroll(Sender: TBaseVirtualTree; DeltaX,
  DeltaY: Integer);
var
  DY: integer;
begin
  if DeltaY <> 0 then begin
    DY := VirtualStringTree1.DefaultNodeHeight;
    VirtualStringTree1.OffsetY := Round(VirtualStringTree1.OffsetY / DY) * DY;
  end;
end;
| 归档时间: | 
 | 
| 查看次数: | 2648 次 | 
| 最近记录: |