§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 |