Delphi では、私の正確なケースでは TSynEdit コントロールなど、多くの TWinControl の子孫で、水平スクロール バーと垂直スクロール バーの位置をどのように読み取るのでしょうか?
特定のコントロールのソース コードと、TWinControl の基本クラスのドキュメントを調べましたが、わかりません。
これを行う一般的な VCL 固有の方法はありますか、または Win32 API 呼び出しを介してこれを行う必要がありますか?
Delphi では、私の正確なケースでは TSynEdit コントロールなど、多くの TWinControl の子孫で、水平スクロール バーと垂直スクロール バーの位置をどのように読み取るのでしょうか?
特定のコントロールのソース コードと、TWinControl の基本クラスのドキュメントを調べましたが、わかりません。
これを行う一般的な VCL 固有の方法はありますか、または Win32 API 呼び出しを介してこれを行う必要がありますか?
このGetScrollBarInfo
関数は、TWinControl のスクロールバーの位置を取得する方法です。データを返すには、コントロールのハンドル、OBJID_VSCROLL
またはOBJID_HSCROLL
値、および 構造体を渡す必要があります。SCROLLBARINFO
このサンプルを確認してください
var
LBarInfo: TScrollBarInfo;
begin
LBarInfo.cbSize := SizeOf(LBarInfo);
if GetScrollBarInfo(SynEdit1.Handle, Integer(OBJID_VSCROLL), LBarInfo) then
ShowMessage(Format('Left %d Top %d Height %d Width %d', [LBarInfo.rcScrollBar.Left, LBarInfo.rcScrollBar.Top, LBarInfo.rcScrollBar.Height, LBarInfo.rcScrollBar.Width]));
end;