Top > OOoBasic > Dialog > Controls

ダイアログコントロール Edit

ダイアログに配置したコントロールの利用。ダイアログに配置したコントロールはダイアログと同様にコントローラとモデルに分かれています。

コントローラ Edit

コントロールのコントローラオブジェクトはダイアログコントローラオブジェクトから取得します。getControl メソッドにコントロールを配置したときにコントロールに付けた名前を指定します。

Sub controller_1
   DialogLibraries.LoadLibrary("Standard")
   oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
   oLabel = oDialog.getControl("Label1")
   oLabel.setText("Label1")
   oDialog.execute()
End Sub

モデル Edit

コントロールのモデルはダイアログのモデルオブジェクトまたはコントロールのコントローラオブジェクトから取得できます。

まずは、ダイアログのモデルオブジェクトから取得する方法です。getByName メソッドにコントロール名を指定して取得します。

Sub model_1
   DialogLibraries.LoadLibrary("Standard")
   oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
   oDialogModel = oDialog.getModel()
   oLabelModel = oDialogModel.getByName("Label1")
   oLabelModel.BackgroundColor = RGB(0,0,255)
   oDialog.execute()
End Sub

次はコントロールのコントローラオブジェクトからです。getModel メソッドを利用します。

Sub model_2
   DialogLibraries.LoadLibrary("Standard")
   oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
   oLabel = oDialog.getControl("Label1")
   oLabelModel = oLabel.getModel()
   oLabelModel.HelpText = "Label1"
   oDialog.execute()
End Sub

言語とテキスト Edit

2.2 からダイアログに複数の言語を利用できるようになっていますが、複数の言語を設定したダイアログのコントロールモデルオブジェクトからラベルなどの文字列を取得しようとするとリソースを指定する文字列が取得されることがあります。

このリソースの指定から正しい文字列を取得します。

取得できる文字列を ID としてダイアログの ResourceResolver から正しい文字列を取得します。取得できる文字列の最初が "&" で始まっていますがそれを取り除く必要があります。

  sEditLabel = oDialog.getControl("btn_edit").getModel().Label
  oRResolver = oDialog.getModel().ResourceResolver
  If Left(sEditLabel,1) = "&" Then
    sEditLabel = oRResolver.resolveString(Right(sEditLabel,Len(sEditLabel) -1))
  End If

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes