Top > OOoBasic > Dialog > AsynchronousCallback

非同期コールバック Edit

OOo 2.4 で実装された非同期コールバックを行えるサービス com.sun.star.awt.AsyncCallback。たとえば、ダイアログを表示したとき (直後) に何かを実行したいときに利用できます。以前まではダイアログを表示したときに XWindowListener などで何かを行っていたことをこのサービスで可能になります。

とはいえ、ラベルやリストのメンバーなどはダイアログの表示前に設定するべきでしょう。

サービス Edit

com.sun.star.awt.AsyncCallback サービスをインスタンス化して利用します。

oASync = CreateUnoService( _
  "com.sun.star.awt.AsyncCallback")

コールバック Edit

コールバックを受けるのは com.sun.star.awt.XCallback インターフェースの notify メソッドです。OOo Basic では次のようにしてリスナーで代用します。

oCallback = CreateUnoListener("Callback_", _
   "com.sun.star.awt.XCallback" )

Sub Callback_notify( aData )
  oDialog.getControl("Label1").setText("123")
End Sub

notify の引数は any 型です。この引数は次の addCallback メソッドでコールバックを設定したときに渡した引数の値で、notify が呼ばれるときに渡されます。

void notify( [in] any aData )

コールバックの設定 Edit

コールバックを受ける インターフェースをサービスに設定します。

oASync.addCallback(oCallback,"")

addCallback の引数は XCallback インターフェースおよび notify が呼ばれたときに引数として渡される any 型の値です。

void addCallback( [in] XCallback xCallback, [in] any aData )

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