フォームの大きさに応じてサイズの変化するページコントロールを置きたいのですがうまく機能しません。
MDIの子フォームで、Align=alClientのパネルの上に、
上下左右を少しずつ空けて全アンカーをTrueとしたページコントロールを置いたところ、
表示させると画面下部が隠れてしまい、スクロールバーも表示されません。
alClientなのにフォームよりも大きくなってしまっている印象です。
(ただしパネルのHeight値を見るとちゃんとフォームのClientHeightに収まる値です)
原因や対策が分かるようでしたらお願いします。
MDI親フォームのサイズが影響しています。
MDI子フォームのScaledプロパティをFalseにすれば、
回避できるようです。
Basserさん、ありがとうございます。
Scaledプロパティについては未知でしたので一発解決を夢見て試してみましたが……、
結果は同じでした。
設計時にパネルのHeight=570、ページのHeight=553と、きちんと収まっているのに、
フォームのサイズを変えるとそれぞれ709、751と、
子供の方が大きくなるという逆転現象が起こってしまいます。
設計時からパネル=570、ページ=494と、かなり小さめに配置しておくと、
拡大時にはほぼ望み通りのものとなります。
何故かページコントロールが59ピクセル分だけ過剰に大きくなることになります。
いまだ謎です。
D2005のTValueListEditorのオブジェクトインスペクタで
Stringsプロパティの編集ダイアログを開くと画面下部のボタン等が
フォーム外に隠れてしまっている。
(他にも同様のケースを見た覚えあり)
IDEでもこうなのだからバグなのだろうか……。
CreateParamsメソッドをオーバライドしたら設計時通りに行きました。
理屈は分かりませんがとりあえずは解決です。
ツイート | ![]() |