この質問は 2 つのシナリオに当てはまります。
(1)
1 つ目は、MDI フォームと MDI 子を持つことです。実行時にフォームのサイズを水平または垂直に変更しようとすると、メインの MDI フォームの端を超えることができません。どこかに SetBounds またはこのタイプのマウスが端にスナップするだけの動作。
私が望むのは、MDI フォームの境界四角形を超えて/外側にサイズ変更できるようにすることです。これにより、メインの MDI フォームにスクロールバーが表示されます (子フォームを移動するときと同じように)。
(2)
2 つ目は、MDI レイアウト アプリケーション内でのスクロールが少し煩わしく、あまり使い心地が良くないことです。そのため、MDI を使用する代わりに、TScrollBox 内に Form を設定することでシミュレートできると考えました。スクロール。ただし、最初のシナリオと同様に、Form を ScrollBox 内に配置しても、クライアントの外部でサイズ変更することはできません。また、このメソッドを実行しても、Form を ScrollBox 内に移動してもスクロールバーは表示されません。
新しい MDI アプリケーションを作成することで、これをすぐに試すことができます。右下隅を使用してサイズを変更し、できるだけ右/下にドラッグしてみてください。マウスはメインの MDI クライアントで停止し、外部のサイズ変更を防ぎます。
では、実行時に Form が MDI Child であるか TScrollBox の親であるかに関係なく、親の境界外でサイズ変更できるようにするにはどうすればよいでしょうか?
見落としているかもしれない設定が必要な単純なプロパティはありますか、それともフォームのメッセージをオーバーライドするなど、より多くの作業が必要ですか?