|
フォームをダイアログとして開く。
構文1
OpenDialog(
basedFormName
[,systemParam]
[,openParam]
)
パラメータ
basedFormName
|
|
型:
|
文字
|
|
ダイアログとして表示したい元フォームのフォーム名を指定します。このフォームを元にダイアログが表示されます。
|
systemParam
|
|
型:
|
汎用
|
|
システムパラメータ。1要素は"パラメータ名:値"とする。複数要素を指定する場合は c("パラメータ名1:値1","パラメータ名2:値2",...) のように配列で指定する。尚、本パラメータはマップ値には対応していません。
パラメータ
|
デフォルト値
|
説明
|
viewName
|
""
|
ダイアログのビュー名を文字で指定します。省略するとbasedFormNameで指定した名前が採用されます。現在表示されているフォームのビュー名と重複させてはなりません。ビュー名に関する詳細は「フォーム名とビュー名について」を参照してください。
|
formName
|
""
|
ダイアログ表示後のフォーム名を文字で指定します。スクリプトから参照するための新たなフォーム名となります。省略するとbasedFormNameで指定した名前が採用されます。現在表示されているフォーム名と重複させてはなりません。
|
title
|
""
|
ダイアログのタイトルを文字で指定します。
|
left
|
-1
|
ダイアログの左座標を数字で指定します。-1を指定すると中央に表示されます。座標の基準となる位置はbasePosXで指定します。(デフォルトはブラウザの左端が0)
|
top
|
-1
|
ダイアログの上座標。-1を指定すると中央に表示されます。座標の基準となる位置はbasePosY引数で指定します。(デフォルトはブラウザの上端が0)
|
width
|
-1
|
ダイアログの幅。-1を指定するとフォームの幅がダイアログの幅になります。
|
height
|
-1
|
ダイアログの高さ。-1を指定するとフォームの高さがダイアログの高さになります。
|
minWidth
|
0
|
ダイアログのサイズを小さくした時の最小の制限サイズ(幅)。0の場合、制限しません。
|
minHeight
|
0
|
ダイアログのサイズを小さくした時の最小の制限サイズ(高さ)。0の場合、制限しません。
|
stretch
|
DEFAULT
|
ダイアログ表示時のストレッチモードを指定します。
NONE
|
ストレッチしない。
|
STRETCH_FULL
|
ダイアログの大きさに合わせて引き伸ばし表示する。
|
STRETCH_KEEPRATE
|
ダイアログの大きさに合わせて引き伸ばし表示する(縦横比保持)。
|
RESIZE_FULL
|
ダイアログの大きさに合わせてフォームサイズを調整する。
|
RESIZE_KEEPRATE
|
ダイアログの大きさに合わせてフォームサイズを調整する(縦横比保持)。
|
FORM
|
フォームのStrechプロパティの設定に合わせる。
|
DEFAULT
|
ルートのStrechプロパティの設定に合わせる。
|
※本引数を指定しない、あるいは空文字を指定した場合は、ルートのStrechプロパティが採用されます。
|
dialogType
|
0
|
ダイアログのタイプ。
0
|
通常(閉じるボタンあり)
|
1
|
シンプル(閉じるボタンなし)
|
2
|
フレームなし(タイトルバーなし)
|
3
|
フル(最大化、最小化、閉じるボタンあり)
|
4
|
フレーム(タイトルバー)及び境界線なし
|
閉じるボタンが表示されないタイプで表示する場合、ダイアログを閉じるために、::CloseDialogを呼び出す必要があります。
|
resizable
|
F
|
サイズを変更可能とするか。指定しないとサイズ変更が不可能になります。
T
|
サイズ変更を許可する。
|
F
|
サイズ変更を許可しない。
|
|
basePosX
|
default
|
基準となるX方向の位置を指定します。
default
|
DialogBasePosXルートプロパティに従う。
|
browser
|
ブラウザの左端が0。
|
parent
|
親画面(ダイアログも含む)の左端が0。
|
desktop
|
デスクトップの左端が0。
|
|
basePosY
|
default
|
基準となるY方向の位置を指定します。
default
|
DialogBasePosYルートプロパティに従う。
|
browser
|
ブラウザの上端が0。
|
parent
|
親画面(ダイアログも含む)の上端が0。
|
desktop
|
デスクトップの上端が0。
|
|
alreadyOpened
|
error
|
ダイアログが既に表示されている場合の動作を指定します。
error
|
既にオープンされている場合エラーを返します。
|
show
|
既にオープンされている場合、非表示になっている場合は表示状態にします。OpenModalDialogで表示している場合はモーダルで表示状態にします。
|
|
showState
|
show
|
ダイアログが既に表示されている場合の動作を指定します。
show
|
通常の表示状態でダイアログを開きます。
|
hide
|
非表示の状態でダイアログを開きます。
|
|
modal
|
F
|
ダイアログのモーダル表示を指定します。
T
|
モーダル表示で開きます。
|
F
|
非モーダル表示(通常の表示)で開きます。
|
|
visualTheme
|
""
|
ビジュアルテーマ名を文字で指定します。
|
例)1要素のみの場合
::OpenDialog("Form01","viewName:Dialog01");
例)複数要素の場合
::OpenDialog("Form01",c("viewName:Dialog01","formName:dlgForm01","stretch:STRETCH_FULL","dialogType:1","resizable:T"));
|
openParam
|
|
型:
|
汎用
|
|
オープンパラメータ。1要素は"パラメータ名:値"とする。配列で指定する場合は c("パラメータ名1:値1","パラメータ名2:値2",...) のように指定する。MAPルートメソッドによって生成したマップ値を渡すことも可能。
オープンパラメータで渡した情報は、呼出し先フォームのスクリプトからGetOpenParamメソッドで取得することができます。
|
戻り値
|
|
型:
|
ブール
|
|
FALSE - 失敗。TRUE - 成功。
|
解説
フォームをダイアログとして開きます。同じフォームで複数のダイアログを開くこともできます。
ダイアログのフォーム名や、表示位置、サイズなどの振る舞いについては、第2引数のダイアログパラメータで指定します。
ダイアログパラメータのviewNameで指定する「ビュー名」には、以下の2つの役目があります。
1.CloseDialog でダイアログを閉じる時には、この名称を指定します。
2.OpenDialog でダイアログを開く際に、既に同じダイアログが開かれているかどうかの識別にこの名称が使用されます。指定されたビュー名のダイアログが既に存在する場合は、ダイアログは表示されません。
basedFormNameには、通常は元となるフォームのフォーム名を指定します("Form01"など)。
フォルダをまたいで同一のフォーム名が存在する場合は、フォルダ名.フォーム名として指定することができます("Folder01.Form01"など)。
|
例
OpenDialogを使用したダイアログ表示の具体例については「ユーザーダイアログの作成例」に詳しく記載されています。
単純にフォームをダイアログ表示したい場合は、フォーム名を指定するのみでOKです。
|
event OnMouseUp(button)
{
::OpenDialog("Form01");
}
|
ダイアログを開いた後で呼び出し元のスクリプトからダイアログにアクセスする場合、ダイアログのフォーム名でアクセスします。
ダイアログパラメータのformNameを省略すると、引数で指定したフォーム名が採用されるため、以下のようにアクセスします。
|
event OnMouseUp(button)
{
::OpenDialog("Form01");
::Form01.Label1.Text = "Hello";
}
|
通常、同じフォームを同時に2つ開くことはできません。1つのフォームを複数のダイアログとして同時に開きたい場合は、ダイアログパラメータのviewNameで異なるビュー名を指定する必要があります。
以下のように記述すると、同じフォームのダイアログが2つ表示されます。
|
event OnMouseUp(button)
{
::OpenDialog("Form01","viewName:Dialog01");
::OpenDialog("Form01","viewName:Dialog02");
}
|
尚、上記のようにダイアログパラメータのformNameを省略すると、引数で指定したフォーム名が採用され、同じフォーム名が2つ存在する状態となります(スクリプトから参照すると先に見つかった方のフォームが採用されます)。
そこで、スクリプトから各ダイアログのフォームにアクセスする必要がある場合は、ダイアログパラメータで異なるフォーム名を指定してください。
|
event OnMouseUp(button)
{
::OpenDialog("Form01",c("viewName:Dialog1","formName:DlgForm01"));
::OpenDialog("Form01",c("viewName:Dialog2","formName:DlgForm02"));
::DlgForm01.Label1.Text = "Hello";
::DlgForm02.Label1.Text = "Hello";
}
|
|
|
ダイアログ関連のメソッドは共通メソッドとして提供されています。
例えば、「this.OpenDialog (...)」のようにフォームのメソッドとして実行することも、「::OpenDialog(...)」のようにルートのメソッドとして実行することもできます。
いずれの呼び出し方でもダイアログはフォームの裏には隠れませんが、複数のダイアログを同時に表示した場合、両者には階層表示の動作に違いがあります。
■フォームのメソッドとして実行した場合
表示されたダイアログは呼び出し元のオブジェクトよりも必ず前面になるように表示されます(呼び出し元の裏に隠れない)。
つまり、表示されたダイアログのフォームから「this.OpenDialog (...)」のように、更に別のダイアログを表示すると、後に表示したダイアログは先に表示したダイアログより前面に表示され、呼び出し元のダイアログをクリックしたとしても、裏に隠れません。
■ルートのメソッドとして実行した場合
前述に対し、ルートのメソッド(「::OpenDialog(...)」)として複数のダイアログを表示させた場合には、各ダイアログは同一の階層にあるものとして位置付けられるため、オペレータは複数のダイアログをマウスで自由に前後できるようになります。
|
|
ダイアログを開くとき、ダイアログを閉じるまで背面の画面を触れないようにしたい場合があります。そのような場合は、ダイアログをモーダル(最前面表示)として表示することで対応できます。モーダル表示では、最前面に表示されウィンドウの操作や前面/背面移動も不可になります。ダイアログをモーダル表示にする方法としては、本メソッドではなく、「OpenModalDialog」メソッドでダイアログ表示を行う方法と、本メソッドの呼び出し後にルートの「SetModalDialog」メソッドを呼び出してダイアログの表示後にモーダル表示に切り替える方法があります。SetModalDialogを呼び出す場合は、OpenDialogの直後に呼び出すようにしてください。
その他、ダイアログを閉じずに、可視状態のみを変更したい場合(表示/非表示のみを切り替えたい場合)は、ルートのShowDialogメソッドを利用してください。
|
構文2
OpenDialog(
viewName,
basedFormName,
[,formName]
[,title = ""]
[,left = -1]
[,top = -1]
[,width = -1]
[,height = -1]
[,stretch = "default"]
[,dialogType = 0]
[,resizable = FALSE]
[,basePosX = "default"]
[,basePosY = "default"]
[,openParam]
)
パラメータ
viewName
|
|
型:
|
文字
|
|
ビュー名(任意の名前)。詳細は「フォーム名とビュー名について」を参照ください。省略するとbasedFormName名で指定した名前がビュー名となります。
|
basedFormName
|
|
型:
|
文字
|
|
ダイアログとして表示したい元フォームのフォーム名を指定します。このフォームを元にダイアログが表示されます。
|
formName
|
|
型:
|
文字
|
|
表示後のフォーム名(任意の名前)。スクリプトから参照するための新たなフォーム名を指定します。省略するとbasedFormName名で指定した名前がスクリプトから参照するためのフォーム名となります。このフォーム名と、メインフォーム、開かれているダイアログのフォーム名は重複させてはなりません。
|
left
|
|
型:
|
数値
|
|
ダイアログの左座標。-1を指定すると中央に表示されます。座標の基準となる位置はbasePosX引数で指定します。(デフォルトはブラウザの左端が0)
|
top
|
|
型:
|
数値
|
|
ダイアログの上座標。-1を指定すると中央に表示されます。座標の基準となる位置はbasePosY引数で指定します。(デフォルトはブラウザの上端が0)
|
width
|
|
型:
|
数値
|
|
ダイアログの幅。-1を指定するとフォームの幅がダイアログの幅になります。
|
height
|
|
型:
|
数値
|
|
ダイアログの高さ。-1を指定するとフォームの高さがダイアログの高さになります。
|
stretch
|
|
型:
|
文字
|
|
ダイアログの大きさに合わせてフォームの大きさを広げる。
"NONE" - ストレッチしない
"STRETCH_FULL" - ダイアログの大きさに合わせて引き伸ばし表示する
"STRETCH_KEEPRATE" - ダイアログの大きさに合わせて引き伸ばし表示する(縦横比保持)
"RESIZE_FULL" - ダイアログの大きさに合わせてフォームサイズを調整する
"RESIZE_KEEPRATE" - ダイアログの大きさに合わせてフォームサイズを調整する(縦横比保持)
"FORM" - フォームのStrechプロパティの設定に合わせる
"DEFAULT" - ルートのStrechプロパティの設定に合わせる
※本引数を指定しない、あるいは空文字を指定した場合は、ルートのStrechプロパティが採用されます。
|
dialogType
|
|
型:
|
数値
|
|
ダイアログのタイプ。
0-通常(閉じるボタンあり)
1-シンプル(閉じるボタンなし)
2-フレームなし(タイトルバーなし)
3-フル(最大化、最小化、閉じるボタンあり)
「1-シンプル」の場合、ダイアログを閉じるために、::CloseDialogを呼び出す必要があります。
|
resizable
|
|
型:
|
ブール
|
|
サイズを変更可能とするか。指定しないとサイズ変更が不可能になります。
|
basePosX
|
|
型:
|
文字
|
|
基準となるX方向の位置。
"default" - DialogBasePosXルートプロパティに従う
"browser" - ブラウザの左端が0。
"parent" - 親画面(ダイアログも含む)の左端が0。
"desktop" - デスクトップの左端が0。
|
basePosY
|
|
型:
|
文字
|
|
基準となるY方向の位置。
"default" - DialogBasePosYルートプロパティに従う
"browser" - ブラウザの上端が0。
"parent" - 親画面(ダイアログも含む)の上端が0。
"desktop" - デスクトップの上端が0。
|
openParam
|
|
型:
|
汎用
|
|
オープンパラメータ。1要素は"パラメータ名:値"とする。配列で指定する場合は c("パラメータ名1:値1","パラメータ名2:値2",...) のように指定する。MAPルートメソッドによって生成したマップ値を渡すことも可能。
オープンパラメータで渡した情報は、呼出し先フォームのスクリプトからGetOpenParamメソッドで取得することができます。
|
戻り値
|
|
型:
|
ブール
|
|
FALSE - 失敗。TRUE - 成功。
|
解説
OpenDialogメソッドの構文2は、Ver6REV11以前の旧呼び出し書式です。
フォームをダイアログとして開きます。同じフォームで複数のダイアログを開くこともできます。
第1引数の「ビュー名」には、以下の2つの役目があります。
1.CloseDialog でダイアログを閉じる時には、この名称を指定します。
2.OpenDialog でダイアログを開く際に、既に同じダイアログが開かれているかどうかの識別にこの名称が使用されます。指定されたビュー名のダイアログが既に存在する場合は、ダイアログは表示されません。
basedFormNameには、通常は元となるフォームのフォーム名を指定します("Form01"など)。
フォルダをまたいで同一のフォーム名が存在する場合は、フォルダ名.フォーム名として指定することができます("Folder01.Form01"など)。
|
例
以下は、単純にフォームをダイアログ表示する例です。
|
event OnMouseUp(button)
{
::OpenDialog("Dialog01", "Form01");
}
|
通常、同じフォームを同時に2つ開くことはできません。1つのフォームを複数のダイアログとして同時に開きたい場合は、異なるビュー名を指定する必要があります。
以下のように記述すると、同じフォームのダイアログが2つ表示されます。
|
event OnMouseUp(button)
{
::OpenDialog("Dialog01", "Form01", "DlgForm01");
::OpenDialog("Dialog02", "Form01", "DlgForm02");
}
|
ダイアログを開いた後で呼び出し元のスクリプトからダイアログにアクセスするには、第3引数で指定したフォーム名を使って以下のようにアクセスします。
|
event OnMouseUp(button)
{
::OpenDialog("Dialog01", "Form01", "DlgForm01");
::DlgForm01.Title.Text = "Hello";
}
|
|
サポート対象
参照
OpenDialog
OpenModalDialog
CloseDialog
|