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