ExcelやWordのような起動に時間がかかるアプリケーションでは、
起動時にスプラッシュスクリーンと呼ばれるイメージ画像が表示されます。
今回のTipsでは、このスプラッシュスクリーンを表示する方法をご紹介します。
スプラッシュスクリーンはアプリケーションが起動中であることを示すために
表示されるもので、Delphiでも同じ役割のものを作成可能です。


表示するスプラッシュスクリーンは通常のフォームで作成しますので、
TImageによる画像や、TProgressBarによる進捗状況を表示することも可能です。
またロジックは、メインフォーム起動前にそのフォームをに表示し、
メインフォーム起動後に閉じるだけです。
メインフォームの起動ロジックはプロジェクトファイルにありますので、
スプラッシュスクリーンフォームの生成・表示・破棄のロジックもそれに追加します。
プロジェクトファイルは、IDE(Delphiの統合開発環境)の
[メニュー|プロジェクト|ソース表示] から開くことができます。
Form2をスプラッシュスクリーンとして表示する場合のコードは
以下の例のようになります。
(追加するコードは //*** のある行です。)
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  //スプラッシュスクリーンの作成・表示        //***
  Form2 := TForm2.Create(Application);        //***
  Form2.Show;                                 //***
  //スプラッシュスクリーンを再描画するために、//***
  //アプリケーションに制御を戻す。            //***
  Application.ProcessMessages;                //***
  //メインフォームの起動
  Application.CreateForm(TForm1, Form1);
  //スプラッシュスクリーンの解放              //***
  Form2.Release;                              //***
  Application.Run;
end.
なおデフォルトの状態では、スプラッシュスクリーンのタイトルバー右上に
閉じる [×] ボタンが表示されるため、閉じることができてしまいます。
これを防ぐには、フォームのBorderStyleプロパティをbsNoneに設定して
タイトルバーを含むウインドウ枠を非表示にします。
また、スプラッシュスクリーンのフォームを画面中央に表示するには、
フォームのPositionプロパティをpoMainFormCenterに設定します。
(ミガロ.情報マガジン「MIGARO News!!」Vol.141 2012年8月号より)