我有一个ScrollBox,我在运行时添加了控件。但是,当控件超过ScrollBox高度时,我希望ScrollBox一直滚动到底部,以便新添加的控件可见。
做了一些研究,我发现了一些名为" ScrollInView"对于德尔福。看看Free Pascal中有多少(很多)Delphi方法/函数可用,你知道这个特定的等价吗?如果没有,你能帮我实现我的目标(自动滚动ScrollBox到底部)吗?
提前致谢,
的奥斯卡
答案 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;