exe実行時に初期表示されるフォームを変更

解決


kaden  2020-01-17 16:41:03  No: 148452

プロジェクトを実行したときに、最初に表示されるフォームを変更したいです。
Form1,Form2,Form3があった場合、通常ですとForm1がまず生成されますがこれをForm2を最初に表示させる方法が知りたいです。


igy  2020-01-17 17:13:54  No: 148453

Delphiのバージョンによって、多少違うかもしれませんが・・

メニュー[プロジェクト]-[オプション]で表示する「プロジェクト オプション」ダイアログにて、
[フォーム]タブにある、[メインフォーム]欄で指定するのは、いかがですか?

Delphi 10.3だと、
[フォーム](ダイアログ ボックス) - RAD Studio
http://docwiki.embarcadero.com/RADStudio/Rio/ja/%EF%BC%BB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%EF%BC%BD%EF%BC%88%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0_%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%EF%BC%89


のぶ  2020-01-17 17:41:12  No: 148454

プロジェクトソースで実行時引数の値に応じてフォームを切り替えることもできます。
要するに最初にCreateFormされたフォームが最初に表示されるフォームになります。
ただし、フォームを新規追加するとDelphiが勝手にCreateForm文を追加するので注意してください。

program Project1;

uses
  Vcl.Forms;

{$R *.res}

begin

  Application.Initialize;
  Application.MainFormOnTaskbar := True;

  if Uppercase(ParamStr(1)) = '1' then begin
    Application.CreateForm(TForm1, Form1);

  end else if Uppercase(ParamStr(1)) = '2' then begin
    Application.CreateForm(TForm2, Form2);

  end else if Uppercase(ParamStr(1)) = '3' then begin
    Application.CreateForm(TForm3, Form3);

  end;

  Application.Run;

end;


kaden  2020-01-23 09:14:57  No: 148467

お二人とも、回答ありがとうございました。
今のところigys様の方法で大丈夫そうです。
今後、また不具合があったら、のぶ様の方法も参考にさせていただきます!


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








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