在Free Pascal中是否有delphi ScrollInView等价物?

时间:2015-08-07 18:33:04

标签: freepascal

我有一个ScrollBox,我在运行时添加了控件。但是,当控件超过ScrollBox高度时,我希望ScrollBox一直滚动到底部,以便新添加的控件可见。

做了一些研究,我发现了一些名为" ScrollInView"对于德尔福。看看Free Pascal中有多少(很多)Delphi方法/函数可用,你知道这个特定的等价吗?如果没有,你能帮我实现我的目标(自动滚动ScrollBox到底部)吗?

提前致谢,

的奥斯卡

1 个答案:

答案 0 :(得分:1)

这样的东西?

procedure TForm1.Button1Click(Sender: TObject);
begin
    with TEdit.Create(Self) do
    begin
        Parent := ScrollBox1;
        Left := 10;
        Top := ScrollBox1.ControlCount * 40;
        ScrollBox1.VertScrollBar.Position := Top;
    end;
end;

这里有ScrollInView方法的简单实现:

TScrollBoxHelper = class helper for TScrollBox
    procedure ScrollInView(AControl: TControl);
end;

implementation

procedure TScrollBoxHelper.ScrollInView(AControl: TControl);
begin
    if AControl.Parent = Self then
    begin
        Self.VertScrollBar.Position := AControl.Top;
        Self.HorzScrollBar.Position := AControl.Left;
    end;
end;

用法:

procedure TForm1.Button2Click(Sender: TObject);
begin
    ScrollBox1.ScrollInView(ScrollBox1.Controls[3]);
end;