禁用自动切换滚动条位置(禁用滚动到活动控件)

时间:2013-06-26 13:43:07

标签: delphi focus scrollbar frame

我在Delphi XE3上开发我的应用程序。我的框架有很长的桌子(字符串网格) - 高度约为10000像素(但框架的高度要短得多)。由于框架上的其他元素(按钮等),我不能使用网格的滚动条并从框架中使用它。为此,我设置框架的属性AutoScroll = True。但问题是什么。当表格获得焦点时,框架的滚动条会滚动到零位置。这是非常无用的,例如,我将滚动条设置在一半位置,切换到另一个帧(我在TPageControl的页面中有一些帧数),当回到第一帧时,我看到,该滚动条处于零位置。

我怎么能理解,当帧上的某个对象获得焦点时(由于AutoScroll = True属性)尝试显示该对象。但由于对象较大(我重复表格的高度约为10000像素),框架设置滚动条到零位置(即滚动位置改变)。

那么,我如何禁用该功能?

1 个答案:

答案 0 :(得分:1)

在此处查找相同的问题How can I disable the scroll-into-view behavior of TScrollBox? 在我的情况下,我使用覆盖AutoScrollInView过程。完全禁用此过程的实现。

procedure TfrSection.AutoScrollInView(AControl: TControl);
begin
//  inherited;
end;

有效。