ダイアログエディターでのコントロール制御用プログラミングの例

From LibreOffice Help
Jump to: navigation, search

下記の例は、「Dialog1」と名付けた新規ダイアログを制御するためのものです。 このダイアログを作成する際には、ダイアログエディター上で コントロール 可動ツールバーを表示させ、該当するツールを用いて、次のコントロールを配置しておきます: 「CheckBox1」という名前の チェックボックス 1 個、「Label1」という名前の ラベルフィールド (図表番号ボックス) 1 個、「CommandButton1」という名前の ボタン 1 個、「ListBox1」という名前の リストボックス 1 個。

Warning.png オブジェクト変数にコントロールを割り当てる際には、上記の名前の大文字と小文字を一致させる必要があります。

ダイアログの読み込み用の大域関数

Function LoadDialog(Libname as String, DialogName as String, Optional oLibContainer)
Dim oLib as Object
Dim oLibDialog as Object
Dim oRuntimeDialog as Object
    If IsMissing(oLibContainer) Then
        oLibContainer = DialogLibraries
    End If
    oLibContainer.LoadLibrary(LibName)
    oLib = oLibContainer.GetByName(Libname)
    oLibDialog = oLib.GetByName(DialogName)
    oRuntimeDialog = CreateUnoDialog(oLibDialog)
    LoadDialog() = oRuntimeDialog
End Function

ダイアログの表示

REM 変数の大域定義
Dim oDialog1 AS Object
Sub StartDialog1
    BasicLibraries.LoadLibrary("Tools")
    oDialog1 = LoadDialog("Standard", "Dialog1")
    oDialog1.Execute()
End Sub

プログラム中でのコントロールのプロパティの取得と変更

Sub Sample1
    BasicLibraries.LoadLibrary("Tools")
    oDialog1 = LoadDialog("Standard", "Dialog1")
REM ダイアログモデルの取得
    oDialog1Model = oDialog1.Model
REM Label1 のテキストの表示
    oLabel1 = oDialog1.GetControl("Label1")
    MsgBox oLabel1.Text
REM Label1 のテキストの変更
oLabel1.Text = "New Files"
REM CheckBox1 コントロールのモデルプロパティの表示
    oCheckBox1Model = oDialog1Model.CheckBox1
    MsgBox oCheckBox1Model.Dbg_Properties
REM コントロールモデルでの CheckBox1 の状態の変更
    oCheckBox1Model.State = 1
REM CommandButton1 コントロールのモデルプロパティの表示
    oCMD1Model = oDialog1Model.CommandButton1
    MsgBox oCMD1Model.Dbg_Properties
REM CommandButton1 コントロールの表示
    oCMD1 = oDialog1.GetControl("CommandButton1")
    MsgBox oCMD1.Dbg_Properties
REM ダイアログの実行
    oDialog1.Execute()
End Sub

リストボックスへの項目追加

Sub AddEntry
    BasicLibraries.LoadLibrary("Tools")
    oDialog1 = LoadDialog("Standard", "Dialog1")
REM リストボックスへの項目追加
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    Dim iCount as integer
    iCount = oListbox.ItemCount
oListbox.additem("New Item" & iCount,0)
End Sub

リストボックスからの項目の削除

Sub RemoveEntry
    BasicLibraries.LoadLibrary("Tools")
    oDialog1 = LoadDialog("Standard", "Dialog1")
REM リストボックスの 1 番目の項目の削除
    oDialog1Model = oDialog1.Model
    oListBox = oDialog1.GetControl("ListBox1")
    oListbox.removeitems(0,1)
End Sub

Related Topics

ダイアログエディターに配置したコントロールのプロパティの変更

Basic ダイアログの作成

ダイアログエディターでのコントロールの作成

ダイアログ表示用のプログラムコード