ダイアログコントロールの詳細
Apache OpenOffice Basic には各種のコントロール要素が用意されていますが、これらは次の 4 つのグループに分類できます。
入力フィールド | ボタン | 選択リスト | その他 |
---|---|---|---|
|
|
|
|
ボタン
ボタンは、ユーザーによるクリックに応じて、特定のアクションを実行させる際に使用します。
最も単純な使用法は、ユーザーのクリックで発生する「When Initiating」イベントをトリガーとして、ボタンのアクションを実行させるという使い方です。またボタンに他のアクションを割り当てて PushButtonType 属性を利用し、別のダイアログを開くという処理も可能です。この属性値を 0 としたボタンをクリックしても、ダイアログはそのまま残されます。この属性値を 1 としたボタンをクリックした場合、ダイアログは閉じられ、ダイアログを表示していた Execute メソッドは戻り値として 1 を返します (ダイアログの処理は正常終了)。PushButtonType の属性値を 2 としたボタンをクリックした場合、ダイアログは閉じられ、ダイアログを表示していた Execute メソッドは戻り値として 0 を返します。
以下に、ボタンモデルで利用可能なすべての属性を示します。
- Model.BackgroundColor (long)
- 背景の色。
- Model.DefaultButton (Boolean)
- フォーカスのない状態で Enter キーが押された場合に反応させる標準ボタンとする指定
- Model.FontDescriptor (struct)
- 表示フォントの詳細指定用の構造体 (com.sun.star.awt.FontDescriptor に定められた構造体)
- Model.Label (String)
- ボタンに表示するラベル (タイトル)
- Model.Printable (Boolean)
- コントロール要素を印刷する指定。
- Model.TextColor (Long)
- コントロール要素のテキストの色。
- Model.HelpText (String)
- コントロール要素にマウスポインタを重ねた際に表示させるヘルプテキスト
- Model.HelpURL (String)
- コントロール要素で使用するオンラインヘルプの URL。
- PushButtonType (short)
- ボタンアクションの指定 (0: なし、1: OK、2: キャンセル)
ラジオボタン
通常これらは複数のボタンをグループ化して、そのうち 1 つのオプションを選択することにより使用します。その際にオプションの 1 つが選択されると、残りのオプションは非選択状態になります。このように処理することで、選択状態にあるオプションは常に 1 つだけになります。
ラジオボタンのコントロール要素には、次の 2 つの属性があります。
- State (Boolean)
- ボタンの有効化。
- Label (String)
- ボタンに表示するラベル (タイトル)
ラジオボタンのモデルからは、次の属性も使用できます。
- Model.FontDescriptor (struct)
- 表示フォントの詳細指定用の構造体 (com.sun.star.awt.FontDescriptor に定められた構造体)。
- Model.Label (String)
- コントロール要素に表示するラベル (タイトル)
- Model.Printable (Boolean)
- コントロール要素が印刷できると指定。
- Model.State (Short)
- オプションをアクティブとするか (属性値を 1 とした場合)、非アクティブとするかの指定 (その他の値の場合)。
- Model.TextColor (Long)
- コントロール要素のテキストの色。
- Model.HelpText (String)
- コントロール要素にマウスポインタを重ねた際に表示するヘルプテキスト。
- Model.HelpURL (String)
- コントロール要素で使用するオンラインヘルプの URL。
複数のラジオボタンをグループ化する場合は、これらをアクティブ化する順序の設定値 (Model.TabIndex 属性の指定値で、 はダイアログエディタ上では順序の指定に該当) に連続した値を指定しておく必要があります。アクティブ化する順序の途中に他のコントロール要素が入っていると、Apache OpenOffice は新規のコントロール要素グループが始まるものと判断するため、本来のグループ内部での切り替えが想定通りに行えなくなります。
![]() |
VBA とは異なり Apache OpenOffice Basic では、グループ枠の中にラジオボタンを挿入するということはできません。Apache OpenOffice Basic に用意されているグループ枠というコントロール要素は、グループ化するコントロール要素を目で見て区別できるように、これらを囲む枠線を引くだけのものです。 |
チェックボックス
チェックボックスは基本的に Yes または No の形式の情報を入力するために使用しますが、モード設定によっては、このような 2 つのステータス間だけでなく、3 つのステータス間で選択することもできます。通常使用するのは Yes か No かの選択肢ですが、どちらともつかない中間状態が選択肢としてあり得る場合は、それを示すステータスも表示できます。
チェックボックスには、次の属性を指定できます。
- State (Short)
- チェックボックスの状態 (0: No、1: Yes、2: 中間状態)
- Label (String)
- コントロール要素のラベル。
- enableTriState (Boolean)
- 選択状態と非選択状態の他に、中間状態を表示する指定
チェックボックスのモデルオブジェクトでは、次の属性を使用できます。
- Model.FontDescriptor (struct)
- 表示フォントの詳細指定用の構造体 (com.sun.star.awt.FontDescriptor に定められた構造体)。
- Model.Label (String)
- コントロール要素のラベル。
- Model.Printable (Boolean)
- コントロール要素を印刷する指定。
- Model.State (Short)
- チェックボックスの状態 (0: No、1: Yes、2: 中間状態)
- Model.Tabstop (Boolean)
- コントロール要素を Tab キーによるフォーカス移動の対象にする指定。
- Model.TextColor (Long)
- コントロール要素のテキストの色。
- Model.HelpText (String)
- コントロール要素にマウスポインタを重ねた際に表示させるヘルプテキスト。
- Model.HelpURL (String)
- コントロール要素で使用するオンラインヘルプの URL。
テキストボックス (テキストフィールド)
テキストボックスは、ユーザーによる数値およびテキストの入力に使用できます。com.sun.star.awt.UnoControlEdit. サービスにより、テキストボックスの機能が主として提供されています。
テキストボックスの表示は 1 行に制限することもできれば、複数行表示を許可することも可能で、またユーザーからの入力内容を編集することも、読み取り専用とすることもできます。またテキストボックスは、通常の通貨フィールドや番号フィールドまたはパターンフィールドでは処理しきれない場合の代用フィールドとしても利用できます。そもそも、これらのコントロール要素はどれも Uno サービスの UnoControlEdit をベースとしているので、基本的に共通した手法でプログラム制御をすることができます。
テキストボックスには、次の属性が用意されています。
- Text (String)
- 現在のテキスト
- SelectedText (String)
- 現在強調表示されているテキスト。
- Selection (Struct)
- 読み取りの強調表示設定 (com.sun.star.awt.Selection に定められた構造体で、Min および Max 属性により強調表示の開始と終了箇所を指定)
- MaxTextLen (short)
- フィールド内に入力可能な最大文字数。
- Editable (Boolean)
- テキスト入力が許可されるか (True)、拒否されるか (False) の設定 (この属性は IsEditable を介した間接的な利用のみが可能)
- IsEditable (Boolean)
- コントロール要素の内容の変更を許可するか、読み取り専用とするかの指定。
モデルオブジェクトからは、次の属性を利用できます。
- Model.Align (short)
- テキストの配置 (0: 左揃え、1: 中央揃え、2: 右揃え)。
- Model.BackgroundColor (long)
- コントロール要素の背景色。
- Model.Border (short)
- 外枠の種類 (0: なし、1: 3D 表示、2: 平坦な線)。
- Model.EchoChar (String)
- パスワードフィールドのエコー文字。
- Model.FontDescriptor (struct)
- 表示フォントの詳細指定用の構造体 (com.sun.star.awt.FontDescriptor に定められた構造体)。
- Model.HardLineBreaks (Boolean)
- コントロール要素のテキスト内で改行する指定。
- Model.HScroll (Boolean)
- テキストに横スクロールバーを使用する指定。
- Model.MaxTextLen (Short)
- 表示テキストの最大数で、0 の指定は制限無しに対応。
- Model.MultiLine (Boolean)
- 数行に渡る項目を許可。
- Model.Printable (Boolean)
- コントロール要素を印刷する指定。
- Model.ReadOnly (Boolean)
- コントロール要素を読み取り専用とする指定。
- Model.Tabstop (Boolean)
- コントロール要素を Tab キーによるフォーカス移動の対象にする指定。
- Model.Text (String)
- コントロール要素に関連するテキスト。
- Model.TextColor (Long)
- コントロール要素のテキストの色。
- Model.VScroll (Boolean)
- テキストに縦スクロールバーを使用する指定。
- Model.HelpText (String)
- コントロール要素にマウスポインタを重ねた際に表示するヘルプテキスト。
- Model.HelpURL (String)
- コントロール要素で使用するオンラインヘルプの URL。
リストボックス
リストボックス (com.sun.star.awt.UnoControlListBox サービス) は、次の属性をサポートしています。
- ItemCount (Short)
- 要素数 (読み取り専用)。
- SelectedItem (String)
- 強調表示された項目のテキスト (読み取り専用)。
- SelectedItems (Array Of Strings)
- 強調表示された項目のデータフィールド (読み取り専用)。
- SelectItemPos (Short)
- 強調表示中の項目の数 (読み取り専用)。
- SelectItemsPos (Array of Short)
- 強調表示中の項目の数を格納したデータフィールド (複数選択可能なリストボックスのみ。読み取り専用)。
- MultipleMode (Boolean)
- 複数選択が許可されるか (True)、拒否されるか (False) の設定 (この属性は IsMultipleMode を介した間接的な利用のみが可能)
- IsMultipleMode (Boolean)
- リスト内の複数選択を許可する指定 (読み取り専用)。
リストボックスには、次のメソッドが用意されています。
- addItem (Item, Pos)
- Item として渡された文字列を、Pos で指定するリスト位置に挿入します。
- addItems (ItemArray, Pos)
- 文字列データフィールド ItemArray の形で渡された複数の項目を、Pos で指定するリスト位置に挿入します。
- removeItems (Pos, Count)
- Pos で指定するリスト位置から、Count 個の項目を削除します。
- selectItem (Item, SelectMode)
- 文字列 Item に指定された項目の強調表示を、ブール値 SelectMode の指定に応じて切り換えます。
- makeVisible (Pos)
- Pos の指定位置にある項目を表示するよう、リストフィールドをスクロールします。
リストボックスのモデルオブジェクトには、次の属性が用意されています。
- Model.BackgroundColor (long)
- コントロール要素の背景色。
- Model.Border (short)
- 外枠の種類 (0: なし、1: 3D 表示、2: 平坦な線)。
- Model.FontDescriptor (struct)
- 表示フォントの詳細指定用の構造体 (com.sun.star.awt.FontDescriptor に定められた構造体)。
- Model.LineCount (Short)
- コントロール要素の行数。
- Model.MultiSelection (Boolean)
- 項目の複数選択を許可する指定。
- Model.SelectedItems (Array of Strings)
- 強調表示された項目のリスト。
- Model.StringItemList (Array of Strings)
- すべての項目のリスト。
- Model.Printable (Boolean)
- コントロール要素を印刷する指定。
- Model.ReadOnly (Boolean)
- コントロール要素を読み取り専用とする指定。
- Model.Tabstop (Boolean)
- コントロール要素を Tab キーによるフォーカス移動の対象にする指定。
- Model.TextColor (Long)
- コントロール要素のテキストの色。
- Model.HelpText (String)
- コントロール要素にマウスポインタを重ねた際に表示するヘルプテキスト。
- Model.HelpURL (String)
- コントロール要素で使用するオンラインヘルプの URL。
![]() |
VBA に用意されているリスト項目への数値付加オプション (ItemData) は、Apache OpenOffice Basic では利用できません。リストボックスの項目に数値 (データベース ID など) を割り当てるのであれば、追加のデータフィールドを用意して、両者のデータを格納するようにします。 |
Content on this page is licensed under the Public Documentation License (PDL). |