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月号より)