|
フォームをダイアログとして開く。
構文
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" - フォームの設定に合わせる
"DEFAULT" - デフォルト値(メインビューのStretch状態)と同じ。
|
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",...) のように指定する。
|
戻り値
|
|
型:
|
ブール
|
|
FALSE - 失敗。TRUE - 成功。
|
解説
フォームをダイアログとして開きます。同じフォームで複数のダイアログを開くこともできます。
第1引数の「ダイアログ名」には、以下の2つの役目があります。
1.CloseDialog でダイアログを閉じる時には、このダイアログ名を指定します。 2.OpenDialog でダイアログを開く際に、既に同じダイアログが開かれているかどうかの識別にこのダイアログ名が使用されます。既に開かれていた場合にダイアログを重複して開きません。
BasedFormNameには、通常は元となるフォームのフォーム名を指定します("Form01"など)。
フォルダをまたいで同一のフォーム名が存在する場合は、フォルダ名.フォーム名として指定することができます("Folder01.Form01"など)。
|
例
ボタンを押したときに、ダイアログを表示させる
以下の例では、ボタンを押すと"Dialog01"という名前でダイアログが作成されます。再びボタンを押したときは、すでに"Dialog01"が開かれているため、2つ目が開かれることはありません。
同時に同じダイアログを複数開きたい場合は、異なるダイアログ名を指定する必要があります。
|
event OnMouseUp(button)
{
::OpenDialog("Dialog01", "Form01", "DlgForm01");
}
|
ダイアログを開いた後でメインフォームのスクリプトダイアログにアクセスするには、第3引数で指定したフォーム名を使って以下のようにアクセスします。
|
event OnMouseUp(button)
{
::OpenDialog("Dialog01", "Form01", "DlgForm01");
::DlgForm01.Title.Text = "Hello";
}
|
つまり上例は、エディタで作成した"Form01"を元に、"DlgForm01"という新たな名前のフォームとしてダイアログ表示しています。
|
|
ダイアログ関連のメソッドは共通メソッドとして提供されています。
例えば、「this.OpenDialog (...)」のようにフォームのメソッドとして実行することも、「::OpenDialog(...)」のようにルートのメソッドとして実行することもできます。
いずれの呼び出し方でもダイアログはフォームの裏には隠れませんが、複数のダイアログを同時に表示した場合、両者には階層表示の動作に違いがあります。
■フォームのメソッドとして実行した場合
表示されたダイアログは呼び出し元のオブジェクトよりも必ず前面になるように表示されます(呼び出し元の裏に隠れない)。
つまり、表示されたダイアログのフォームから「this.OpenDialog (...)」のように、更に別のダイアログを表示すると、後に表示したダイアログは先に表示したダイアログより前面に表示され、呼び出し元のダイアログをクリックしたとしても、裏に隠れません。
■ルートのメソッドとして実行した場合
前述に対し、ルートのメソッド(「::OpenDialog(...)」)として複数のダイアログを表示させた場合には、各ダイアログは同一の階層にあるものとして位置付けられるため、オペレータは複数のダイアログをマウスで自由に前後できるようになります。
|
|
ダイアログを開くとき、ダイアログを閉じるまで背面の画面を触れないようにしたい場合があります。そのような場合は、ダイアログをモーダル(最前面表示)として表示することで対応できます。モーダル表示では、最前面に表示されウィンドウの操作や前面/背面移動も不可になります。ダイアログをモーダル表示にする方法としては、本メソッドではなく、「OpenModalDialog」メソッドでダイアログ表示を行う方法と、本メソッドの呼び出し後にルートの「SetModalDialog」メソッドを呼び出してダイアログの表示後にモーダル表示に切り替える方法があります。SetModalDialogを呼び出す場合は、OpenDialogの直後に呼び出すようにしてください。
その他、ダイアログを閉じずに、可視状態のみを変更したい場合(表示/非表示のみを切り替えたい場合)は、ルートのShowDialogメソッドを利用してください。
|
|
サポート対象
参照
OpenDialog
OpenModalDialog
CloseDialog
|