<< Click to Display Table of Contents >> マニュアル > 画面作成ガイド > ダイアログ/フレーム/ビュー > コモンダイアログ > OpenCommonDialogを使用しない新規コモンダイアログ表示(応用編) |
OpenCommonDialogを使用しない新規コモンダイアログ表示(応用編)
ここでは、コモンダイアログの理解を更に深めることを目的として、OpenCommonDialogを使用せずに、ダイアログを開くためのユーザー定義関数を独自に定義して表示する方法について紹介します。
サンプルのダウンロード
コモンダイアログのサンプルは以下からダウンロードすることができます。
上記には、以下のファイルが含まれています。
rc.xml
|
コモンダイアログの元フォームです。 |
sample_dialog_customize.xml
|
コモンダイアログのカスタマイズ例です。「コモンダイアログのをカスタマイズする」で紹介されている手順によって実際に作成された設定ファイルです。
|
sample_dialog_new.xml |
コモンダイアログのカスタマイズ例です。「新規コモンダイアログを作成する」及び「OpenCommonDialogを使用しない新規コモンダイアログ表示(応用編)」で紹介されている手順によって実際に作成された設定ファイルです。
|
OpenCommonDialogを使用しない新規コモンダイアログの作成例
この方法の大まかな流れは以下のとおりです。
1)Panel Editorでrc.xmlを開き、カスタマイズしたいコモンダイアログのフォームをコピーする。
2)別のPanel Editorを起動してターゲットの設定ファイルを開き、先ほどコピーしたコモンダイアログのフォームを貼り付けする。
3)コモンダイアログのフォームのレイアウトを自由に変更して保存する。
4)カスタマイズしたフォームの名称を別の名前に変更する。
5)新規コモンダイアログの表示・クローズのためのユーザー定義関数を作成する。
6)「5」で作成したユーザー定義関数を使用してダイアログを表示する。
つまり、「1」~「4」までの作業は前述の「新規コモンダイアログの作成例」で紹介した手順と同様です。
以下は、カスタマイズ手順の例です。
1.前述の「新規コモンダイアログの作成例」で解説した手順のうち、1から4までの手順を実行する
2.ルートのスクリプトに以下の3つのユーザー定義関数を追加する
function OpenTextKey2(tg, text, texttype, textformat) { ::OpenDialog("ViewRCTextKey2", "RCTextKey2", "FormRCTextKey2", "Number", -1, -1, -1, -1, T, 1); ::FormRCTextKey2.SetInfo(tg, text, texttype, textformat); } function OpenTextKeyEdit2(tg) { ::OpenDialog("ViewRCTextKey2", "RCTextKey2", "FormRCTextKey2", "Number", -1, -1, -1, -1, T, 1); ::FormRCTextKey2.SetInfoEdit(tg); } function CloseTextKey2() //コモンダイアログの終了用 { ::CloseDialog("ViewRCTextKey2"); }
3.作成したユーザー定義関数で、カスタマイズしたコモンダイアログを呼び出す
前記で作成したユーザー定義関数を以下の要領で呼び出して、標準のテキストキーとカスタマイズしたテキストキーが両方とも正しく表示されるかどうか試してみてください。
//エディットボックス1のスクリプト event OnMouseDown(button) { ::OpenTextKeyEdit(this); //標準のテキストキー }
//エディットボックス2のスクリプト event OnMouseDown(button) { ::OpenTextKeyEdit2(this); //カスタマイズしたテキストキー }
OpenTextKey2関数とOpenTextKeyEdit2関数から呼び出している「SetInfo」及び「SetInfoEdit」は、コピーしたテキストキーフォーム(RCTextKey2)にあらかじめ定義されている関数です。この関数のコードはスクリプトエディタから見ることができます。OpenTextKeyEdit2で行っている処理としては、OpenDialogメソッドでフォームをダイアログとして表示し、SetInfoEditを呼び出して初期情報を設定しています。 OpenTextKeyEdit2を独自に作成するにあたり、このSetInfo/SetInfoEditの呼び出しは重要です。それぞれのコモンダイアログのフォームには、SetInfo/SetInfoEditがスクリプトとして定義されています。この処理方式の概念は全てのコモンダイアログで同様です。 |