OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
リストボックスの利用

今度はリストボックスを配置します。

リストボックスの名前を「lstInput」として、OKボタンを押すとテキストボックスにされた内容をリストに追加し、テキストボックスの内容をクリアするという処理を作成します。また、「btnClear」という名前のボタンをもう一つ追加して、リストボックスを初期化させるようにします。
各コントロールを配置したダイアログは下図のようになります。


次に、コードを以下に示します。

Private oDialog As Object
 
Private btnOK As Object '---(1)
Private btnCancel As Object
Private txtInput As Object
Private lstInput As Object
 
Private oActionListener As Object
 
Sub Show
    
    Initialize
    
    With oDialog
        .execute
        .dispose
    End With
    
End Sub
 
Sub Initialize
    
    oDialog =  createUnoDialog(DialogLibraries.Standard.dlgSample)
    
    oActionListener = CreateUnoListener("dlgSampleActionListener_", _
        "com.sun.star.awt.XActionListener")
    
    btnOK = oDialog.getControl("btnOK") '---(2)
    btnOK.addActionListener(oActionListener)
    btnOK.Label = "~Set"
    
    btnCancel = oDialog.getControl("btnCancel")
    btnCancel.addActionListener(oActionListener)
    btnCancel.Label = "~Clear"
    
    txtInput = oDialog.getControl("txtInput")
    txtInput.Text = ""
    
    lstInput = oDialog.getControl("lstInput")
    
End Sub
 
Sub btnOK_Click '---(3)
    If txtInput.Text = "" Then Exit Sub
    lstInput.addItem(txtInput.Text, 0)
    txtInput.Text = ""
End Sub
 
Sub btnCancel_Click '---(4)
    
    lstInput.removeItems(0, lstInput.getItemCount)
    
End Sub
 
Sub dlgSampleActionListener_actionPerformed(oEvent)
    
    Select Case oEvent.Source.getModel.Name '---(5)
        Case "btnOK"
            btnOK_Click
        Case "btnCancel"
            btnCancel_Click
    End Select
End Sub
 
Sub dlgSampleActionListener_disposing

End Sub

内容を解説します

  1. 全コントロール用の変数を宣言
  2. ボタンコントロールにアクションリスナーを登録し、ラベルを合わせます。また、他のコントロールも同様に変数に割り当てます
  3. btnOKをクリックした時、txtInputが空白ならば終了し、そうでない場合はリストボックスに登録します
  4. btnCancelをクリックしたらリストボックスの内容を消去します
  5. アクションリスナーの関数を呼び出す時、引数を付けると呼び出し元のオブジェクトを取得できます。そこで、呼び出し元のオブジェクトから名称を選択し、それぞれの名称に合わせて処理を分岐します

リストボックスは便利なので、是非利用したいものです。ついでに、選択された項目番号を取得する方法は

lstInput.getSelectedItemPos
です。腕試しに、lstInputへアクションリスナーを登録してリストボックスをダブルクリックすると選択された項目をMsgBox関数で表示するマクロを作ってみて下さい。

スポンサーサイト

テーマ:OpenOffice.org - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://shinob.blog42.fc2.com/tb.php/38-0e895b0e
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
COPYRIGHT(C) 2004 POWERD BY FC2 ALLRIGHT RESERVED.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。