15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
メインフォームを表示する通常起動に加えて、ファイルをドロップしたとき
などには、メインを表示せず、サブフォームだけ表示する、というようなこ
とをするにはどうすればいいですか?
[A]
設計時の Form の Visible プロパティーを、FormCreate で打ち消すこと
はできません。
>[FAQ]起動直後にサブフォームを開きたい
で、プロジェクトファイルへの、Application.ShowMainForm:=false; の挿入
が、設計時の、各 Form の Visible プロパティーをそのまま実現する効果を
もつことが分かりました。
ここで、さらに、プロジェクトファイルに、
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
// (p1)
Application.ShowMainForm:=false;
// (p2)
Form1.Visible:=not Form1.Visible; // これがどう効いてくるのか
Form2.Visible:=not Form2.Visible; // 〃
Application.Run;
end.
というように入れて見ると、(p1)のところでも、(p2)でも、設計時の
Visible プロパティーが、完璧に逆転されることが分かります。もっとも、
設計時に True で、ここで(p1 or p2)、False とされると、一旦表示され
た後、消えます。
従って、ご質問のことを実現するには、メイン、サブ、設計時 Visible=
false としておき、(p1)などに、
if ParamCount>0 then begin // ドロップ起動
Application.ShowMainForm:=false;
Form2.Visible:=true;
end;
と入れればよいことが分かります。
[例]
プロジェクトファイルの例です。
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
if ParamCount>0 then begin // ドロップ起動
Application.ShowMainForm:=false;
Form2.Visible:=true;
end;
Application.Run;
end.
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|