嗨,大家在3天没找到正确的答案后,我来找你帮忙:),所以我的问题是我在我的表格中有一个TScrollBox组件,我在FormCreate事件中创建TImage组件,这填补了Scroll-带有组件的盒子,但是当我想使用Scroll-by滚动它时,它会超出最后一个组件的末尾,代码将在2个按钮上运行,鼠标滚轮1个按钮向左2个按钮向右和鼠标滚轮任意一侧
procedure TForm1.RightButtonClick(Sender: TObject);
var
Coff : Double;
begin
Coff := 6.6;
scrollbarpos := scrollbarpos - 100;
if((scrollbarpos>= -Coff * screen.PixelsPerInch) AND (scrollbarpos<=0)) then
begin
ScrollBox1.ScrollBy(-100,0);
end
else
begin
scrollbarpos := scrollbarpos + 100;
if(scrollbarpos < -(Coff /2) * screen.PixelsPerInch) then
begin
ScrollBox1.ScrollBy(-Round(scrollbarpos+Coff *screen.PixelsPerInch),0);
scrollbarpos := round( -Coff * screen.PixelsPerInch);
end;
end;
end;
此代码有效,但是当我将“控制面板\外观和个性化\显示”设置从较小的 - 100%更改为中等或更大时,它超出了最后一个组件,它与Coff值有关。没有使用滚动条滚动的更有效方法的任何想法,因为它们是不可见的。