Difference between revisions of "JA/Documentation/BASIC Guide/Working With Dialogs"
(New page: {{JA/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Dialogs |NextPage=Documentation/BASIC Guide/Properties |dial=block }} {{DISP...) |
|||
(7 intermediate revisions by one other user not shown) | |||
Line 2: | Line 2: | ||
|ShowPrevNext=block | |ShowPrevNext=block | ||
|ShowPrevPage=block | |ShowPrevPage=block | ||
− | |PrevPage=Documentation/BASIC Guide/Dialogs | + | |PrevPage=JA/Documentation/BASIC Guide/Dialogs |
− | |NextPage=Documentation/BASIC Guide/Properties | + | |NextPage=JA/Documentation/BASIC Guide/Properties |
|dial=block | |dial=block | ||
}} | }} | ||
− | {{DISPLAYTITLE: | + | {{DISPLAYTITLE:ダイアログの操作}} |
{{OOo}} Basic のダイアログは、1 個のダイアログウィンドウ上にテキストフィールド、リストボックス、ラジオボタンなどの各種コントロールが配置されます。 | {{OOo}} Basic のダイアログは、1 個のダイアログウィンドウ上にテキストフィールド、リストボックス、ラジオボタンなどの各種コントロールが配置されます。 | ||
− | == | + | ==ダイアログの作成法== |
{{OOo}} ダイアログエディタを使用して、ダイアログを作成および構成できます。 | {{OOo}} ダイアログエディタを使用して、ダイアログを作成および構成できます。 | ||
− | [[Image: | + | [[Image:JA-Documentation basicguide dlg 01-trans.gif|none|thumb|500px|ダイアログエディタを使用したダイアログの作成および構成]] |
コントロール要素をデザインパレット (右) からダイアログ領域にドラッグして、位置とサイズを定義できます。 | コントロール要素をデザインパレット (右) からダイアログ領域にドラッグして、位置とサイズを定義できます。 | ||
− | + | ここでのサンプルダイアログでは、ラベルとリストボックスを配置しています。 | |
− | [[Image: | + | [[Image:JA-Documentation basicguide dlg 04-trans.gif|none|thumb|500px|ラベルとリストボックスが含まれたダイアログ]] |
− | + | ダイアログを表示するには、次のサンプルコードのような手順で処理します。 | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 33: | Line 33: | ||
</source> | </source> | ||
+ | 上記のサンプルコードでは、<tt>CreateUnoDialog</tt> により <tt>Dlg</tt> という名前のオブジェクトを作成していますが、該当するダイアログに対してはこのオブジェクトを介して参照することになります。また実際にダイアログを作成するには、必要なライブラリ (上記のサンプルコードでは <tt>Standard</tt> ライブラリ) を事前に読み込む必要があります。<tt>LoadLibrary</tt> メソッドがこのタスクを実行します。 | ||
− | + | ダイアログオブジェクト (上記のサンプルコードでは <tt>Dlg</tt>) に対して必要な初期化を行った後、<tt>Execute</tt> メソッドを実行することで、該当するダイアログが表示されます。ここでサンプルとしたタイプのダイアログは、表示中に他のプログラムによる処理が何もできなくなるため、モーダルダイアログと呼ばれます。ダイアログが表示されている間のプログラムは、<tt>Execute</tt> メソッドを実行し続けている状態になります。 | |
− | + | プログラム最終行の <tt>dispose</tt> メソッドは、ダイアログの使用するリソースをプログラム終了時に解放させるためのものです。 | |
− | + | ==ダイアログのクローズ処理== | |
− | == | + | ===OK またはキャンセルのボタンによるクローズ=== |
− | + | ダイアログに '''OK''' または'''キャンセル'''のボタンが表示されている場合、いずれかのボタンがクリックされた段階で、ダイアログは自動的に閉じられます。これらのボタンの操作の詳細は、「[[JA/Documentation/BASIC Guide/Control Elements|ダイアログコントロールの詳細]]」で説明されています。 | |
− | + | ||
− | ダイアログに '''OK''' または '''キャンセル''' | + | |
'''OK''' ボタンをクリックしてダイアログを閉じた場合は <tt>Execute-</tt> メソッドの戻り値として 1 が返され、それ以外の場合は 0 が返されます。 | '''OK''' ボタンをクリックしてダイアログを閉じた場合は <tt>Execute-</tt> メソッドの戻り値として 1 が返され、それ以外の場合は 0 が返されます。 | ||
Line 61: | Line 60: | ||
</source> | </source> | ||
− | === | + | ===タイトルバーの閉じるボタンによるクローズ処理=== |
タイトルバーの閉じるボタンをクリックして、ダイアログウィンドウをクローズできます。ダイアログの <tt>Execute</tt> メソッドは、0 の値を返します。これは、「キャンセル」をクリックした場合と同じです。 | タイトルバーの閉じるボタンをクリックして、ダイアログウィンドウをクローズできます。ダイアログの <tt>Execute</tt> メソッドは、0 の値を返します。これは、「キャンセル」をクリックした場合と同じです。 | ||
− | === | + | ===プログラムによる明示的なクローズ処理=== |
− | + | プログラム内に次のような <tt>endExecute</tt> メソッドを記述することでも、ダイアログウィンドウをクローズできます。 | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 73: | Line 72: | ||
</source> | </source> | ||
− | == | + | ==コントロール要素へのアクセス== |
− | + | 各ダイアログには、必要な数のコントロール要素を配置することができます。コントロール要素へアクセスするには、<tt>getControl</tt> メソッドを実行して、戻り値として返される該当コントロール要素の名前を利用します。 | |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 84: | Line 83: | ||
</source> | </source> | ||
− | 上記のサンプルコードでは、<tt>MyButton</tt> というコントロール要素に対する参照用オブジェクトを用意して、この <tt>Ctl</tt> | + | 上記のサンプルコードでは、<tt>MyButton</tt> というコントロール要素に対する参照用オブジェクトを用意して、この <tt>Ctl</tt> というオブジェクト変数を介することで、コントロール要素の初期化を行っています。そしてここでは最後に、コントロール要素の <tt>Label</tt> 属性に <tt>New Label</tt> という値を設定しています。 |
− | {{ | + | {{Note|{{OOo}} Basic の識別子と異なり、コントロール要素の名前では、大文字と小文字が区別されます。}} |
− | == | + | ==コントロール要素およびダイアログでの モデル の使用法== |
− | {{OOo}} API を利用する際には、実際に表示されるプログラム要素 ('''View''': ビュー) と、その背後に存在するデータやドキュメント ('''Model''': モデル) | + | {{OOo}} API を利用する際には、実際に表示されるプログラム要素 ('''View''': ビュー) と、その背後に存在するデータやドキュメント ('''Model''': モデル) とを使い分けなければならない場合があります。ダイアログとコントロール要素のオブジェクトの下層には、コントロール要素のメソッドや属性以外に、<tt>Model</tt> というオブジェクトが存在します。このオブジェクトを利用することで、ダイアログやコントロール要素の内容に直接アクセスすることができます。 |
− | {{OOo}} に用意された API | + | {{OOo}} に用意された API の中でも、ダイアログに関しては、データとその表示内容の境界が非常にあいまいです。API の要素には、View と Model のどちらからでもアクセスできます。 |
<tt>Model</tt> 属性は、ダイアログおよびコントロール要素オブジェクトのモデルに対する、プログラム制御によるアクセスに利用します。 | <tt>Model</tt> 属性は、ダイアログおよびコントロール要素オブジェクトのモデルに対する、プログラム制御によるアクセスに利用します。 | ||
Line 103: | Line 102: | ||
</source> | </source> | ||
− | 上記のサンプルコードでは、<tt> | + | 上記のサンプルコードでは、<tt>Dlg</tt> というダイアログにある <tt>cmdNtext</tt> というボタンを、<tt>cmdNtext</tt> からのモデルオブジェクトを用いて非アクティブにしています。 |
+ | |||
{{PDL1}} | {{PDL1}} | ||
{{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Working With Dialogs}} | {{InterWiki_Languages_BasicGuide|articletitle=Documentation/BASIC Guide/Working With Dialogs}} |
Latest revision as of 14:00, 6 July 2018
Apache OpenOffice Basic のダイアログは、1 個のダイアログウィンドウ上にテキストフィールド、リストボックス、ラジオボタンなどの各種コントロールが配置されます。
ダイアログの作成法
Apache OpenOffice ダイアログエディタを使用して、ダイアログを作成および構成できます。
コントロール要素をデザインパレット (右) からダイアログ領域にドラッグして、位置とサイズを定義できます。
ここでのサンプルダイアログでは、ラベルとリストボックスを配置しています。
ダイアログを表示するには、次のサンプルコードのような手順で処理します。
Dim Dlg As Object DialogLibraries.LoadLibrary("Standard") Dlg = CreateUnoDialog(DialogLibraries.Standard.DlgDef) Dlg.Execute() Dlg.dispose()
上記のサンプルコードでは、CreateUnoDialog により Dlg という名前のオブジェクトを作成していますが、該当するダイアログに対してはこのオブジェクトを介して参照することになります。また実際にダイアログを作成するには、必要なライブラリ (上記のサンプルコードでは Standard ライブラリ) を事前に読み込む必要があります。LoadLibrary メソッドがこのタスクを実行します。
ダイアログオブジェクト (上記のサンプルコードでは Dlg) に対して必要な初期化を行った後、Execute メソッドを実行することで、該当するダイアログが表示されます。ここでサンプルとしたタイプのダイアログは、表示中に他のプログラムによる処理が何もできなくなるため、モーダルダイアログと呼ばれます。ダイアログが表示されている間のプログラムは、Execute メソッドを実行し続けている状態になります。
プログラム最終行の dispose メソッドは、ダイアログの使用するリソースをプログラム終了時に解放させるためのものです。
ダイアログのクローズ処理
OK またはキャンセルのボタンによるクローズ
ダイアログに OK またはキャンセルのボタンが表示されている場合、いずれかのボタンがクリックされた段階で、ダイアログは自動的に閉じられます。これらのボタンの操作の詳細は、「ダイアログコントロールの詳細」で説明されています。
OK ボタンをクリックしてダイアログを閉じた場合は Execute- メソッドの戻り値として 1 が返され、それ以外の場合は 0 が返されます。
Dim Dlg As Object DialogLibraries.LoadLibrary("Standard") Dlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog) Select Case Dlg.Execute() Case 1 MsgBox "Ok pressed" Case 0 MsgBox "Cancel pressed" End Select
タイトルバーの閉じるボタンによるクローズ処理
タイトルバーの閉じるボタンをクリックして、ダイアログウィンドウをクローズできます。ダイアログの Execute メソッドは、0 の値を返します。これは、「キャンセル」をクリックした場合と同じです。
プログラムによる明示的なクローズ処理
プログラム内に次のような endExecute メソッドを記述することでも、ダイアログウィンドウをクローズできます。
Dlg.endExecute()
コントロール要素へのアクセス
各ダイアログには、必要な数のコントロール要素を配置することができます。コントロール要素へアクセスするには、getControl メソッドを実行して、戻り値として返される該当コントロール要素の名前を利用します。
Dim Ctl As Object Ctl = Dlg.getControl("MyButton") Ctl.Label = "New Label"
上記のサンプルコードでは、MyButton というコントロール要素に対する参照用オブジェクトを用意して、この Ctl というオブジェクト変数を介することで、コントロール要素の初期化を行っています。そしてここでは最後に、コントロール要素の Label 属性に New Label という値を設定しています。
コントロール要素およびダイアログでの モデル の使用法
Apache OpenOffice API を利用する際には、実際に表示されるプログラム要素 (View: ビュー) と、その背後に存在するデータやドキュメント (Model: モデル) とを使い分けなければならない場合があります。ダイアログとコントロール要素のオブジェクトの下層には、コントロール要素のメソッドや属性以外に、Model というオブジェクトが存在します。このオブジェクトを利用することで、ダイアログやコントロール要素の内容に直接アクセスすることができます。
Apache OpenOffice に用意された API の中でも、ダイアログに関しては、データとその表示内容の境界が非常にあいまいです。API の要素には、View と Model のどちらからでもアクセスできます。
Model 属性は、ダイアログおよびコントロール要素オブジェクトのモデルに対する、プログラム制御によるアクセスに利用します。
Dim cmdNext As Object cmdNext = Dlg.getControl("cmdNext") cmdNext.Model.Enabled = False
上記のサンプルコードでは、Dlg というダイアログにある cmdNtext というボタンを、cmdNtext からのモデルオブジェクトを用いて非アクティブにしています。
Content on this page is licensed under the Public Documentation License (PDL). |