TScrollBox在运行时使用按钮和鼠标滚动

时间:2013-11-18 07:18:43

标签: delphi runtime tscrollbox

嗨,大家在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值有关。没有使用滚动条滚动的更有效方法的任何想法,因为它们是不可见的。

可在此处找到项目:http://www.failai.lt/i9famvv1my9f/proj.rar.htm

0 个答案:

没有答案