0

嗨,伙计们,在 3 天没有找到正确答案后,我向您寻求帮助 :),所以我的问题是,我的表单中有一个 TScrollBox 组件,我在 FormCreate 事件中创建了 TImage 组件,这用组件填充了滚动框但是当我想使用 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

4

0 回答 0