Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Delphi スプラッシュスクリーンを表示するには

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