プロパティを設定するには?


クレイ  2006-07-19 18:24:02  No: 22675

フォームのプロパティに
Constraints がありますが、
WindowsXP,Windows2000等OSや
画面のプロパティ設定により
最小表示の画面を表示することができません
ClientWidth,ClientHeightで最小の値を設定
することはできないのでしょうか?


HOta  2006-07-19 23:20:59  No: 22676

Constraintsはコントロールの幅と高さの最小値および最大値を指定するのですが、それができないのでしょうか?


クレイ  2006-07-21 00:40:42  No: 22677

HOta さんどうもありがとうございます。

フォームのConstraintsは指定できます。
やりたかったことは、
設計時に最低限表示させたいフォームの幅を設定していたのですが
OSやデスクトップの画面プロパティ設定により
フォームのクライアント領域外の幅やサイズが変更され
表示できるフォーム内のクライアント領域の大きさが変わってくるのです。
つまり、
ClientWidth, ClientHeightの最小値にリミッターをかけたかったので
どうすればよいのか教えてほしかったのです。

同じようなことを現状で対応しようとすれば
フォームにパネルを貼り付け、Align=alClientとして
このパネル上に直接フォーム上に置いていたコンポーネントを
置き換えて、パネルのConstraintsプロパティを設定して
なおかつ、パネルのBevelInner,BevelOuterをbvNone にするしか
方法が思いつかないのですが。
この方法が妥当なのでしょうか?
それとも、フォームのClientWidth, ClientHeightの
最小値にリミッターをかけることはできるのでしょうか?

よろしくおねがいします。


HOta  2006-07-21 00:52:18  No: 22678

フォームのConstraints以下にはならないはずですが、もっと小さくなるのでしょうか?


クレイ  2006-07-21 19:37:36  No: 22679

説明が下手なのでしょうか・・・

以下のようなフォームを作成して、ボタンが完全に見える状態の
最小値をForm1.Constraints.MinHeight,Form1.Constraints.Minに設定します
┌──────────┐これをそのままこの環境で実行すれば
│フォームキャプション│当然なんの問題もなく動作します。
├──────────┤
│┌────────┐│次に、Windowsの画面のプロパティで
││ボタン          ││デザインを選択して、詳細設定ボタンを
│└────────┘│クリックしてデザインの詳細画面から
│┌────────┐│アクティブタイトルバーのサイズを変更します。
││ボタン          ││デフォルトは18なのでこれを36とかにすると
│└────────┘│タイトルバーの縦方向が2倍になり以下の図のように
└──────────┘なります。(WindowsXPの場合)

┌──────────┐
│フォームキャプション│↑この部分が2倍になる
│                    │↓
├────────┬─┤
│┌───────┤ス│
││ボタン        │ク│
│└───────┤ロ│
│┌───────┤ー│
││ボタン        │ル│
│└───────┤バ│
└────────┴─┘

この状態で、フォームのリサイズでフォームを最小にすると
スクロールバーが表示されてしまいます。
つまり、環境によって、ボタンを完全に表示できるフォームの
最小の値を与えることができないというわけです


HOta  2006-07-21 20:12:07  No: 22680

この場合は、ボタンを表示している部分が、相対的に小さくなるので、その部分のConstraintsを設定すればどうでしょうか?フォームキャプション部が大きくなるので、フォームのサイズも変わらないといけないでしょう。もしくは、プログラムで、フォームキャプションのサイズが変わらなくするしかありません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加