15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
起動直後に、メインフォームでなく、サブフォームを開きたいのですが、
どうすればいいですか?
[A]
メインフォーム Form1、サブフォーム Form2 を作成し、起動すると、
Form1 だけが開きます。このとき、それぞれの Form の Visible が設計時
false だってこと、ご存じでした? 以下をご覧下さい。設計時の、Visible
と、起動後のフォームの状態(開くか、開かないか)の関係を調べて見たも
のです。
o---ディフォルト
o 設計時 Form1.Visible + + - -
Form2.Visible + - + -
-はFalse、+はTrue
o 起動直後の状態 Form1 + + ++ +
Form2 ++(*1) - + -
-は開かない、+は開く、++は前面に開く
o Application.ShowMainForm:=false; を追加 (*2)
起動直後の状態 Form1 + + - -
Form2 ++ - + -
o---ここの答え
注意していただきたいのは、メインフォームの方は、設計時、Visible が
どうであっても、とにかく表示されるということ、かつ、Visible=false に
しておかないと、例えば (*1) のように、サブフォームを、設計時 Visible=
true にしたときなど、期待に反して、サブフォームが前面に来てしまうとい
うこと、そして、サブフォームの方は、表示されるかどうかに関しては設計
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
時の Visible が忠実に実現されるということです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(**)
情けないですね>自分。幻の、間違い[FAQ]をアップして、謎の全知師 さ
んに指摘されるまで、(**)に全く気づきませんでした。
それで、設計時 Form1.Visible=false として起動しても開いてしまいます
ので、
>'d' 謎の全知師 さん:[FAQ] メインフォームを表示したくない(2.0
にあるように、Application.ShowMainForm:=false; を追加し(*2)、さらに、
設計時 Form2.Visible=true; さらにしつこく言えば、Form1.Visible は、デ
ィフォルトの false のまま。これで、目的の、起動直後にサブフォームを開
く、ができます。
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|