0

こんにちは、正しい答えが見つからない 3 日後、私はあなたに助けを求めに来ます :)、私の質問はこれです。フォームに TScrollBox コンポーネントがあり、FormCreate イベントで TImage コンポーネントを作成します。これにより、スクロールボックスがコンポーネントで埋められます。しかし、スクロールバイを使用してそれらをスクロールしたい場合、最後のコンポーネントの終わりをはるかに超えて、コードは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