拡張コモンダイアログの呼び出し方

<< Click to Display Table of Contents >>

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

拡張コモンダイアログの呼び出し方

拡張コモンダイアログの呼び出し方

拡張コモンダイアログは、「_sys」から始まるフォーム名であらかじめFA-Panelに組み込まれており、OpenDialog共通メソッド(又はOpenModalDialog共通メソッド)で呼び出すことができます。

 

例えば、ボタンなどのマウスクリック時に拡張コモンダイアログのメッセージボックス「_sysMsg」を表示する場合の、最もシンプルな呼び出し方は以下のとおりです。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg","","Text:メッセージ");
}

 

(表示例)

fap_dialog3_0041

 

OpenDialog共通メソッドの第一引数には、表示したい拡張コモンダイアログのフォーム名を文字列で指定します。上記の例では、"_sysMsg" を指定しています。

第二引数にはダイアログのシステムパラメータを指定することができます。省略する場合は、""(空文字)とします。

第三引数には、拡張コモンダイアログのオープンパラメータを指定します。上記の例では、Textパラメータでメッセージボックスに表示するメッセージを指定しています。オープンパラメータを1つのみ指定する場合は、"Text:メッセージ"のように、パラメータ名と値をコロンで区切った文字列で指定します。

 

hint

ダイアログ関連のメソッドは共通メソッドとして提供されています。例えば、「this.OpenDialog(...)」のようにオブジェクトのメソッドとして実行することも、「::OpenDialog(...)」のようにルートのメソッドとして実行することもできます。いずれの呼び出し方でもダイアログはフォームの裏には隠れませんが、複数のダイアログを同時に表示した場合の階層表示の動作が異なります。

 

オブジェクトのメソッドとして実行した場合
表示されたダイアログは呼び出し元のオブジェクトよりも必ず前面になるように表示されます(つまり、呼び出し元の裏に隠れない)。従って、表示されたダイアログのオブジェクトから更に別のダイアログを表示すると、後に表示したダイアログは先に表示したダイアログより必ず前面に表示されます。

 

ルートのメソッドとして実行した場合
ルートのメソッドとして複数のダイアログを表示させた場合には、各ダイアログは同一の階層にあるものとして位置付けられるため、階層表示に依存関係は生じません。つまり、オペレータは複数のダイアログ表示をマウスで自由に前後させることができます。

 

 

システムパラメータの指定方法

OpenDialog共通メソッドの第二引数にはダイアログのシステムパラメータを指定することができます。

 

例えば、"title"パラメータでダイアログのタイトルを指定することができます。システムパラメータを1つのみ指定する場合は、"title:タイトル"のように、パラメータ名と値をコロンで区切った文字列で指定します。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg","title:タイトル","Text:メッセージ");
}

 

(表示例)

fap_dialog3_0042

 

システムパラメータには、ダイアログをモーダル表示するか否か、ダイアログの初期表示位置の指定、ダイアログのサイズ変更の可否など、さまざまなパラメータを指定することができます。

複数のシステムパラメータを指定する場合は、以下のように配列で指定します。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg",c("title:タイトル","left:0","top:0","modal:T"),"Text:メッセージ");
}

 

hint

ダイアログのシステムパラメータの詳細については「OpenDialog」のsystemParamの記述を参照してください。

 

hint

拡張コモンダイアログを開くとき、ダイアログを閉じるまで背面の画面を操作できないようにしたい場合があります。そのような場合は、システムパラメータの"modal"にTを指定する方法のほか、「OpenModalDialog」共通メソッドで表示する方法があります。

 

hint

拡張コモンダイアログのファイルコモンダイアログ(_sysSelectFile)などは、ダイアログのサイズ変更を有効にして表示した方が使い勝手が良い場合があります。ダイアログのサイズ変更を有効にする場合は、システムパラメータの"resizable"にTを指定して呼び出します。

 

 

オープンパラメータの指定方法

OpenDialog共通メソッドの第三引数には、拡張コモンダイアログのオープンパラメータを指定することができます。

 

例えば、拡張コモンダイアログのメッセージボックス「_sysMsg」でメッセージを表示する場合、"Text"オープンパラメータで表示するメッセージを指定します。

オープンパラメータを1つのみ指定する場合は、"Text:メッセージ"のように、パラメータ名と値をコロンで区切った文字列で指定します。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg","","Text:メッセージ");
}

 

(表示例)

fap_dialog3_0041

 

オープンパラメータに複数のパラメータを同時に指定したい場合は、配列またはMAP値のいずれかで指定することができます。

 

以下は、"Text"および"TextColor"を配列で指定した例です。配列で指定する場合は、c("パラメータ名1:値1","パラメータ名2:値2",...) のように指定します。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg","",c("Text:メッセージ","TextColor:#FF0000"));
}

 

(表示例)

fap_dialog3_0002

 

以下は、"Text"および"TextColor"をMAP値で指定した例です。実行すると上記の表示例と同様の結果となります。

event OnMouseUp(button)
{
	this.OpenDialog("_sysMsg","",::MAP("Text","メッセージ","TextColor","#FF0000"));
}

 

 

hint

オープンパラメータに指定可能なパラメータは拡張コモンダイアログの種類により異なります。各コモンダイアログに指定可能なオープンパラメータの詳細については「拡張コモンダイアログリファレンス」を参照してください。

 

hint

Yes/Noボタンのメッセージボックス(_sysYesNoMsg)等、ダイアログの処理結果をOnCommonEventイベントで受け取る拡張コモンダイアログでは、当該イベントの通知を受け取るためのオブジェクトをオープンパラメータの"Target"で渡す必要があります。Targetに「this」などのオブジェクトを渡す場合は、以下のように記述します。

 

(配列の例)

event OnMouseUp(button)
{
	this.OpenDialog("_sysYesNoMsg","",c("Text:メッセージ","Target:" & ::CStr(this)));
}

 

(MAPの例)

event OnMouseUp(button)
{
	this.OpenDialog("_sysYesNoMsg","",::MAP("Text","メッセージ","Target",this));
}