終了確認ダイアログを作成する

<< Click to Display Table of Contents >>

マニュアル > 画面作成ガイド > フォームとダイアログ/フレーム/ビュー > コモンダイアログ >

終了確認ダイアログを作成する

概要

設備の運転操作やシステムの終了操作など、操作を受け付ける画面を作成する際には、誤操作に対する安全対策が考慮された作りにしておく必要があります。例えば、誤ってマウスボタンに触れてボタンクリックが発生してしまった場合などです。このような場面では、「本当によろいしですか?(Yes/No)」といった確認画面を表示して二段階の操作手順にすることで、うっかりミスによる設備の誤作動を防ぐことができます。

 

このような処理を作成するには、コモンダイアログの「OpenYesNoMsg」を利用するのが簡単な方法です。

そこで、本節ではコモンダイアログを使った終了確認画面の表示方法を例に、コモンダイアログの使用方法について学習します。

 

 

 

終了確認画面の作成

以下は、コモンダイアログによる終了確認処理の作成例です。

 

この例では、フォームにボタンコントロールを追加し、ボタンをクリックしたときに終了確認ダイアログ(Yes/No)を表示するようにします。

Yesの場合はそのままFA-Panelを終了し、Noの場合は処理をキャンセルします。

 

 

1.終了ボタンを作成します。ボタンコントロールを一つフォームに貼り付ける。
 
tra_0439
 
ボタンコントロールを貼り付けたら、以下のプロパティを編集します。
 
・Textを“終了”に変更
 

2.終了ボタンのマウスアップイベントの記述を行う。
 
ボタンオブジェクトを選択し、スクリプトタブをクリックしてスクリプトエディタを表示します。
 
tra_0440
 
tra_0441
 
 

3.ボタンのイベント処理を記述する。
 
スクリプトエディタの左上のイベントコンボボックスから「OnMouseUp(button)」を選択します。
 
tra_0442
 
 
スクリプトエディタにOnMouseUpのイベントに対するスクリプトが追加されました。処理内容の記述は中括弧“{”“}”で囲まれた範囲内に行います。現状、何の処理も記述されていません。
 
tra_0443
 
 
終了ボタンのOnMouseUpイベントに、以下の処理を記述します。
 
tra_0444
 
 
記述する内容は以下の3文になります。行頭の、コロン“:”2文字と、末尾のセミコロン“;”を忘れない様に記述します。
 

   if( button == 1 ){
       ::OpenYesNoMsg(this, "終了しますか?");
   }

 
尚、上記で記述されている「button == 1」とは、マウスの左ボタンがクリックされたかどうかを判定しています。OnMouseUpイベントの「button」には、イベント発生時にマウスのどのボタンがマウスアップ(マウスをクリックして離したか)が渡されます。マウスの左ボタンの場合「1」、中央ボタンの場合「2」、右ボタンの場合は「3」がbutton変数に入ってイベントが発生します。

 

そして、「::OpenYesNoMsg...」の記述がコモンダイアログの呼び出し処理です。ここで指定した文字列はコモンダイアログ上に確認メッセージとして表示されます。

 
 

hint

イベント「OnMouseUp」の詳細は、「OnMouseUp」イベントを参照下さい。

 

hint

コモンダイアログの呼び出しメソッド「OpenYesNoMsg」の詳細は、共通メソッド「OpenYesNoMsg」メソッドを参照下さい。

 

 

4.コモンダイアログ(Yes/Noの確認ダイアログ)でYesが押された時の処理を記述する。
 
スクリプトエディタの左上のイベントコンボボックスから「OnCommonEvent(name, value)」を選択します。
 
tra_0445
 
 
すると、スクリプトエディタにOnCommonEventのイベントが追加されました。
 
tra_0446
 
 
終了ボタンのOnCommonEventイベントに、以下の処理を記述します。
 
tra_0447
 
 
記述する内容は以下の3文になります。行頭の、コロン“:”2文字と、末尾のセミコロン“;”を忘れない様に記述します。
 

   if( value == T ){
       ::CloseBrowser();
   }

 
上記の処理は、「value == T」という条件が成立した場合に、「::CloseBrowser()」を処理する、という意味です。
 
尚、OnCommonEventはコモンダイアログのYes/Noのボタンが押された際に呼び出される仕組みとなっています。イベントが呼び出された際に、Yes/Noのどちらが押されたのかが、value変数にTRUE/FALSEとして入ってきます。つまり、「value == T」(TはTRUEの略)は、コモンダイアログでYesボタンが押された場合という条件式となります。
 
また、「::CloseBrowser()」は、Panel Browserを終了するというルートメソッドです。
 
 

hint

各イベント、メソッドの詳細はコントロールリファレンスを参照して下さい。

 

5.コモンダイアログを閉じる処理を記述する。
 
コモンダイアログを表示したままの状態で呼び出し元の画面が他に切り替わると、コモンダイアログのみが表示された状態で残されてしまいます。そこで、コモンダイアログを使う場合には、ダイアログを呼び出したボタンが破棄されるタイミングのイベント(OnTerminate)に、コモンダイアログを閉じる処理を必ず記述するようにします。
 
そこで、ボタンに「OnTerminate」イベントを追加して、コモンダイアログを閉じる処理を記述します。
 
まず、スクリプトエディタの左上のイベントコンボボックスから「OnTerminate()」を選択します。
 
tra_0448
 
 
すると、スクリプトエディタにOnTerminateのイベントに対するスクリプトが追加されました。
 
tra_0449
 
 
終了ボタンのOnTerminateイベントに、以下の処理を記述します。
 
tra_0450
 
 
記述する内容は以下の1文になります。行頭の、コロン“:”2文字と、末尾のセミコロン“;”を忘れない様に記述します。
 

   ::CloseYesNoMsg();

 
上記の「::CloseYesNoMsg()」とは、コモンダイアログを閉じるという処理になります。

 

以上でイベントの記述は完了です。
 

 

上記の処理により、終了ボタンをクリックすると以下の確認ダイアログが表示されます。

 

tra_0452

 

「No」ボタンをクリックすると、ダイアログが閉じるだけで何も起きません。

「Yes」ボタンをクリックすると、Panel Browserが終了します。