# OpenDialog

マニュアル > コントロールリファレンス > 全コントロール共通 > 共通メソッド > # OpenDialog |

| フォームをダイアログとして開く。 構文 OpenDialog( DialogName, BasedFormName, FormName [,Title = ""] [,Left = -1] [,Top = -1] [,Width = -1] [,Height = -1] [,Stretch = "default"] [,DialogType = 0] [,Resizable = FALSE] [,BasePosX = "default"] [,BasePosY = "default"] ) パラメータ
DialogName
| 型： | 文字
| ダイアログ名（任意の名前）。詳細は解説を参照ください。
BasedFormName
| 型： | 文字
| ダイアログとして表示したい元フォームのフォーム名を指定します。このフォームを元にダイアログが表示されます。
FormName
| 型： | 文字
| フォーム名（任意の名前）。スクリプトからオブジェクトとして参照するためのフォーム名を指定します。 メインフォーム、ビューコントロールで埋め込まれているフォーム、現在表示中のダイアログのフォーム名は重複してはいけません。
Title
| 型： | 文字
| ダイアログのタイトル。
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。
戻り値
| 型： | ブール
| FALSE - 失敗。TRUE - 成功。
解説
フォームをダイアログとして開きます。同じフォームで複数のダイアログを開くこともできます。 第1引数の「ダイアログ名」には、以下の２つの役目があります。 1.CloseDialogでダイアログを閉じる時には、このダイアログ名を指定します。 2.OpenDialog　でダイアログを開く際に、既に同じダイアログが開かれているかどうかの識別にこのダイアログ名が使用されます。既に開かれていた場合にダイアログを重複して開きません。
例
ボタンを押したときに、ダイアログを表示させる 以下の例では、ボタンを押すと"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(...)」）として複数のダイアログを表示させた場合には、各ダイアログは同一の階層にあるものとして位置付けられるため、オペレータは複数のダイアログをマウスで自由に前後できるようになります。
| ダイアログを開くとき、ダイアログを閉じるまで背面の画面をいじれないようにしたい場合があります。 そのような場合は、ルートのSetModalDialogメソッドを使用します。SetModalDialog はOpenDialog 直後に呼び出してください。 また、ダイアログは開いたまま、可視状態のみを変更したい場合は、ルートのShowDialogメソッドを利用します。
サポート対象
| × | スクリプトアクション
サーバのスクリプトVer2アクションで使用可能
| ○ |
ブラウザスクリプト
ブラウザのスクリプトにて使用可能
| × |
演算式構文
演算式構文（バインド書式など）にて使用可能
参照 OpenDialog CloseDialog