§3 複数のフォーム VB6
 (3) スプラッシュウィンドウ 前へ 目次へ 次へ 

 市販のソフトウェアなどでは、起動時に画面中央に名称やバージョンなどが表示された長方形のウィンドウが開く。これをスプラッシュウィンドウという。単に、ソフトウェアに関する情報などが表示されているだけのものが多く、特に難しい処理は必要ない。
 このスプラッシュウィンドウは例えば、初期化の処理に少し時間がかかるソフトウェアの場合、初期化が終了するまでウィンドウが開かないと止まってしまったのかと思ってしまうこともあるので利用されることがある。
 これからソフトウェアを開発していく上で、ぜひとも必要なものではないが、上のような理由や見た目を飾るという点で知っておいてもよいだろう。

 1. スプラッシュウィンドウの追加

 フォームモジュール追加のダイアログから、「見出し画面」を選択する。
 左図のようなフォームが開く(追加される)。


 同時にコードウィンドウにもコード(プログラム)が追加されている。

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
    Unload Me
End Sub

Private Sub Form_Load()
    lblVersion.Caption = "バージョン " & App.Major & "." & App.Minor & "." & App.Revision
    lblProductName.Caption = App.Title
End Sub

Private Sub Frame1_Click()
    Unload Me
End Sub

 プログラムはさておき、実行してみる。
 Form1が表示されるだけで、スプラッシュウィンドウは表示されない。これは、デフォルトでForm1から実行が始まるように設定されているためである。


 2. スタートアップの設定

 ここでのスタートアップの設定とは、複数のモジュールのどれを一番最初に実行するかを設定することである。
 スタートアップの設定は次の通りである。

 プロジェクトウィンドウで、Project1を選択して、右クリックのメニューを出す。この中から、Project1のプロパティを選択する(左図)。下図のようなプロジェクトプロパティのダイアログが表示される。
 

 このダイアログの「スタートアップの設定(S)」をクリックするとモジュールの一覧が表示される。
 ここでは、frmSplashを選択する。(スプラッシュウィンドウのオブジェクト名がfrmSplashであるから)

 実行するとスプラッシュウィンドウが表示される。ウィンドをクリックするか、キーを押すとプログラムは終了する。
 今度は、Form1が表示されない。


 3. 別フォームの実行

 スプラッシュウィンドウが消えた後、ソフトウェア本体のウィンドウを開く必要がある。すなわち、別のフォームを呼び出す(実行する)必要がある。
 別のフォームを呼び出すには、次の2つの方法がある。
    (1) Showメソッドを使う。…フォームをメモリにロードして、ウィンドウを表示する。
    (2) Load命令を使う。…フォームをメモリにロードする。ウィンドウは表示されない。
 AとBのフォームがあり、AからBを呼び出すためAで次のようにプログラムする。
    @ B.Show … Bのウィンドウが表示される。BのForm_Loadプロシージャが実行される。
    A B.SHow  1 … Bのウィンドウが表示される。Bが終了するまでAは使えない。モーダルという。
    B Load  B … Bがメモリにロードされ、Form_Loadプロシージャが実行される。
 Aのモーダルに対して、@をモードレスという。@に0を付けて、B.Show 0 としてもよい。
 ここでは、スプラッシュウィンドウからForm1を実行する。

・@(B.Show) プログラムリスト(スプラッシュウィンドウ)

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
    Unload Me   '←削除
    Form1.Show  '←追加
End Sub

Private Sub Form_Load()
    lblVersion.Caption = "バージョン " & App.Major & "." & App.Minor & "." & App.Revision
    lblProductName.Caption = App.Title
End Sub

Private Sub Frame1_Click()
    Unload Me   '←削除
    Form1.Show  '←追加
End Sub

 実行して、スプラッシュウィンドウをクリックまたはキーを押すとForm1のウィンドウが表示される。
 スプラッシュウィンドウとForm1のどちらをクリックしてもアクティブにできる(使える状態になる)。

・A(B.Show 1) プログラムリスト(スプラッシュウィンドウ) @を修正

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
    Form1.Show 1
End Sub

Private Sub Form_Load()
    lblVersion.Caption = "バージョン " & App.Major & "." & App.Minor & "." & App.Revision
    lblProductName.Caption = App.Title
End Sub

Private Sub Frame1_Click()
    Form1.Show 1
End Sub

 実行してスプラッシュウィンドウをクリックまたはキーを押すとForm1のウィンドウが表示される。
 スプラッシュウィンドウをクリックしてもアクティブにできないが、Form1を終了するとアクティブにできる。

・B(Load B) プログラムリスト(スプラッシュウィンドウ) Aを修正

Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
    Form1.Show 1   '削除
    Load Form1     '追加
End Sub

Private Sub Form_Load()
    lblVersion.Caption = "バージョン " & App.Major & "." & App.Minor & "." & App.Revision
    lblProductName.Caption = App.Title
End Sub

Private Sub Frame1_Click()
    Form1.Show 1   '削除
    Load Form1     '追加
End Sub

 Form1にタイマーコントロール(Timer1)を1つ配置し、プロパティを次のようにする。
    Enable … False
    Interval … 2000 (約2秒)

・プログラムリスト(Form1)

Private Sub Form_Load()
    Timer1.Enabled = True  'タイマー動作開始
End Sub

Private Sub Timer1_Timer()
    Form1.Show
End Sub

 実行して、スプラッシュウィンドウをクリックまたはキーを押すと約2秒後にForm1のウィンドウが表示される。
 スプラッシュウィンドウとForm1のどちらをクリックしてもアクティブにできる(使える状態になる)。


 (3) スプラッシュウィンドウ 前へ 目次へ 次へ 
Copyright © 2002 Hiroshi Masuda 

 

 

inserted by FC2 system