フォームのプロパティに
Constraints がありますが、
WindowsXP,Windows2000等OSや
画面のプロパティ設定により
最小表示の画面を表示することができません
ClientWidth,ClientHeightで最小の値を設定
することはできないのでしょうか?
Constraintsはコントロールの幅と高さの最小値および最大値を指定するのですが、それができないのでしょうか?
HOta さんどうもありがとうございます。
フォームのConstraintsは指定できます。
やりたかったことは、
設計時に最低限表示させたいフォームの幅を設定していたのですが
OSやデスクトップの画面プロパティ設定により
フォームのクライアント領域外の幅やサイズが変更され
表示できるフォーム内のクライアント領域の大きさが変わってくるのです。
つまり、
ClientWidth, ClientHeightの最小値にリミッターをかけたかったので
どうすればよいのか教えてほしかったのです。
同じようなことを現状で対応しようとすれば
フォームにパネルを貼り付け、Align=alClientとして
このパネル上に直接フォーム上に置いていたコンポーネントを
置き換えて、パネルのConstraintsプロパティを設定して
なおかつ、パネルのBevelInner,BevelOuterをbvNone にするしか
方法が思いつかないのですが。
この方法が妥当なのでしょうか?
それとも、フォームのClientWidth, ClientHeightの
最小値にリミッターをかけることはできるのでしょうか?
よろしくおねがいします。
フォームのConstraints以下にはならないはずですが、もっと小さくなるのでしょうか?
説明が下手なのでしょうか・・・
以下のようなフォームを作成して、ボタンが完全に見える状態の
最小値をForm1.Constraints.MinHeight,Form1.Constraints.Minに設定します
┌──────────┐これをそのままこの環境で実行すれば
│フォームキャプション│当然なんの問題もなく動作します。
├──────────┤
│┌────────┐│次に、Windowsの画面のプロパティで
││ボタン ││デザインを選択して、詳細設定ボタンを
│└────────┘│クリックしてデザインの詳細画面から
│┌────────┐│アクティブタイトルバーのサイズを変更します。
││ボタン ││デフォルトは18なのでこれを36とかにすると
│└────────┘│タイトルバーの縦方向が2倍になり以下の図のように
└──────────┘なります。(WindowsXPの場合)
┌──────────┐
│フォームキャプション│↑この部分が2倍になる
│ │↓
├────────┬─┤
│┌───────┤ス│
││ボタン │ク│
│└───────┤ロ│
│┌───────┤ー│
││ボタン │ル│
│└───────┤バ│
└────────┴─┘
この状態で、フォームのリサイズでフォームを最小にすると
スクロールバーが表示されてしまいます。
つまり、環境によって、ボタンを完全に表示できるフォームの
最小の値を与えることができないというわけです
この場合は、ボタンを表示している部分が、相対的に小さくなるので、その部分のConstraintsを設定すればどうでしょうか?フォームキャプション部が大きくなるので、フォームのサイズも変わらないといけないでしょう。もしくは、プログラムで、フォームキャプションのサイズが変わらなくするしかありません。
ツイート | ![]() |