たびたびお世話になります。
フォームを作成し、コンパイル&実行確認などを行ったプロジェクトを保存し終了しました。その後、メンテナンスのためにプロジェクトを開きなおしたのですが、フォームのHeightが勝手に変わってしまっていました。何度開き直しても同じです。なにか設定が悪いのでしょうか?
よろしくお願いします。
プロパティを変更して保存、その後開き直しても現象は同じです。サイズが20減ることがほとんどで、読み込むたびに変わる時もあります。
コンポーネントの階層は以下のような感じです。
Form
+Panel1
+Edit1
+Panel2
+Button1
なおPanel1と2を切り替えて使用するため、Panel1と2は重ねて置いています。
オカシナ現象が起きるのはそのプロジェクトだけ?
他のプロジェクトや新規プロジェクトの場合は問題ないの?
はい、このプロジェクト内には、ほかに3つのフォームが存在するのですが、おかしくなるのはこのフォームだけです。
CPUが2個あるシステムだと、こんなことが起こるということを
聞いたことがあります。
CPUは1個です。
どうも、プロジェクトの開き直しだけではなく、プロジェクトの実行後にそのフォームのエディトをしようとした際にもサイズが変わってしまいます。そのフォームを編集のために開き直さなければ実行しようが何しようがサイズは変わらないのですが。。。
なんでですかね〜?
原因の解決ではないですが、逃げの方法として、FormCreate で
サイズを設定するとか、別のフォームを新規で作成し直して、
問題のフォームを破棄するとか、プロジェクトを0から作り直すとか、
色々やって見ると現象が起こらなくなるかもです。
問題のフォームは破棄して、同じようにフォームを再作成しました。なぜか現象は変わらずです。というか、一時的に現象はなくなった(?)のですが、再発しました。。。2枚のパネルを重ねて2枚ともAlign=alClientってのがだめなのでしょうか。。。でもフォームに影響が及ぶってのもおかしいですし。
いっそのこと、Win 3.1タブの TNoteBookを使ってみるとか?
ページコントロールと異なり、タブが表示されないコントロールです。
TTabsetとセットで、ページコントロールと同じ動作が実現できます。
ただし、
> TNoteBook は下位互換性のために提供されています。
だそうです。
>重ねて2枚ともAlign=alClientってのがだめなのでしょうか
こちらでは再現しないのですが、
設計時は、Align=alNone にしておいて、実行時に表示するパネルだけAlign=alClientにするのはどうですか?
>設計時は、Align=alNone にしておいて、実行時に表示するパネルだけAlign=alClientにするのはどうですか?
今、この状態にしています。現状、問題は起きていません。
しばらく(多分このままずっと?)この状態で開発を進めようと思います。
皆様、ありがとうございました。
ツイート | ![]() |