create a new page, using OOobbs/44 as a template.
Front page
Search
掲示板
Reload
Help
Browse Log
掲示板の使い方
OOo 掲示板3
OOo 掲示板2
OOo 掲示板
掲示板
雑談掲示板
New
List of pages
Recent changes
Backup
簡単ヘルプ
整形ルール
Start:
** [[OOobbs/44]] [#s5ae47c1]
-''サマリ'': マクロで動的にコントロールを配置する方法
-''環境'': Basic
-''状態'': 解決
-''投稿者'': [[まの]]
-''投稿日'': 2004-12-05 (日) 07:11:56
*** 質問 [#ff35820e]
ダイアログ上にマクロでコントロールを配置したいので調べた...
addControl()というメソッドを見つけました。
ですが、使い方がよくわかりません。
addControl(
[in] string
[in] XControl
Name,
Control );
1つ目の引数は、コントロールの名前を指定するんだと思います...
2つ目の引数がわかりません。
追加したいコントロールを指定するんだろうとは思いますが
どういう書き方をしたらいいのかがわかりません。
ご回答を頂けると幸いです。
よろしくお願いします。
*** 回答 [#gc811fb4]
-一般的にダイアログにマクロでコントロールを配置するときに...
マクロでダイアログにコントロールを配置するには,たとえば...
&ref(runtimedialog.png);
Sub MainDialog()
Dim oDialog As Object
Dim oManager As Object
Dim oTextModel As Object, oClose As Object, oListModel A...
oManager = GetProcessServiceManager()
oDialogModel = oManager.createInstance("com.sun.star.a...
With oDialogModel
.setPropertyValue("Name","Dialog")
.setPropertyValue( "PositionX", 100 )
.setPropertyValue( "PositionY", 60 )
.setPropertyValue( "Height", 175 )
.setPropertyValue( "Width", 157 )
.setPropertyValue( "Title", "Menu" )
End With
oTextModel = oDialogModel.createInstance("com.sun.star...
With oTextModel
.setPropertyValue( "Name", "Contents" )
.setPropertyValue( "PositionX", 4 )
.setPropertyValue( "PositionY", 21 )
.setPropertyValue( "Width", 149 )
.setPropertyValue( "Height", 150 )
.setPropertyValue("MultiLine",true)
.setPropertyValue("VScroll",true)
.setPropertyValue("HardLineBreaks",false)
.setPropertyValue("Border",2)
End With
oClose = oDialogModel.createInstance("com.sun.star.awt...
With oClose
.setPropertyValue( "Name", "Close" )
.setPropertyValue( "PositionX", 123 )
.setPropertyValue( "PositionY", 4 )
.setPropertyValue( "Width", 30 )
.setPropertyValue( "Height", 12 )
.setPropertyValue("Label","Close")
.setPropertyValue("PushButtonType",2)
End With
oListModel = oDialogModel.createInstance("com.sun.star...
With oListModel
.setPropertyValue( "Name", "List" )
.setPropertyValue( "PositionX", 4 )
.setPropertyValue( "PositionY", 4 )
.setPropertyValue( "Width", 70 )
.setPropertyValue( "Height", 13 )
.setPropertyValue( "Dropdown",true)
End With
With oDialogModel
.insertByName("Contents",oTextModel)
.insertByName("Close",oClose)
.insertByName("List", oListModel)
End With
oDialog = oManager.createInstance("com.sun.star.awt.Un...
oDialog.setModel(oDialogModel)
oList = oDialog.getControl("List")
With oList
.addItems(Array("Else","Properties","Methods"),0)
.setText("Else")
End With
oDialog.setVisible(true)
oDialog.execute()
End Sub
順に説明していきます。
+GlobalServiceManager へのアクセス
+ダイアログのモデルオブジェクトの作成
+各コントロールモデルのインスタンスの作成
+ダイアログモデルオブジェクトへの各コントロールオブジェク...
+ダイアログオブジェクトの作成
+ダイアログオブジェクトへのダイアログのモデルオブジェクト...
+ダイアログオブジェクトの visibility (可視性) の設定
+ダイアログの表示
まずは,GlobalServiceManager を GetProcessServiceManager ...
つぎに,ダイアログのモデルオブジェクトを作成します。そし...
oDialogModel = oManager.createInstance("com.sun.star.a...
ここで作成した oDialogModel オブジェクトは次のようにして...
Dim oDialog As Object, oDialogModel As Object
oDialog = CreateUnoDialog(DialogLibraries.Standard.Dia...
oDialogModel = oDialog.getModel()
このオブジェクトのプロパティーとしてダイアログのサイズな...
各コントロールのモデルオブジェクトもやはりサービスをイン...
テキストコントロールは
oTextModel = oDialogModel.createInstance("com.sun.star...
コマンドボタンオブジェクトは
oClose = oDialogModel.createInstance("com.sun.star.awt...
などのようなサービスを使用します。
これらのコントロールには,「Name, PositionX, PositionY, W...
ダイアログモデルオブジェクトに各コントロールを ''insertBy...
With oDialogModel
.insertByName("Contents",oTextModel)
.insertByName("Close",oClose)
.insertByName("List", oListModel)
End With
つぎに,ダイアログオブジェクトのインスタンスを作成します。
oDialog = oManager.createInstance("com.sun.star.awt.Uno...
そのダイアログオブジェクトにダイアログモデルを設定します。
oDialog.setModel(oDialogModel)
これでダイアログにコントロールの追加ができました。
このようにして作成したダイアログは execute メソッドでその...
oDialog.setVisible(true)
最後に,ダイアログを呼び出して表示させます。
oDialog.execute()
-お忙しい中、大変詳しいご回答をありがとうございました。 ...
-あと、イベントが起きたときにそのイベントが起きたコントロ...
-かなり途中になってしまっていました。すいません。すぐに続...
イベントの記述ですが,これにはリスナーを使用します。使用...
リスナーの作成方法は次のとおりです。
Dim oActionListener As Object
oActionListener = CreateUnoListener("ActionListener_",...
上記のようにして作成したリスナーを次のようにしてコントロ...
Dim oCloseButton As Object
oCloseButton = oDialog.getControl("CommandButton1")
oCloseButton.addActionListener(oActionListener)
リスナー用の準備が必要で,ActionListener の場合は actionP...
Sub ActionListener_actionPerformed(oEvent)
MsgBox oEvent.Source.Dbg_Properties
MsgBox oEvent.Source.getModel().Dbg_Properties
End Sub
Sub ActionListener_disposing()
End Sub
disposing メソッドは全てのリスナーに備えられているメソッ...
こうすると,ボタンを押したときに ActionListener_actionPer...
ここでは,コマンドボタンを取り上げましたが他のコントロー...
-動的なコントロールの配置の「動的」具合がどれくらいか分か...
-大変詳しいご回答ありがとうございました。 これでなんとか...
#comment
End:
** [[OOobbs/44]] [#s5ae47c1]
-''サマリ'': マクロで動的にコントロールを配置する方法
-''環境'': Basic
-''状態'': 解決
-''投稿者'': [[まの]]
-''投稿日'': 2004-12-05 (日) 07:11:56
*** 質問 [#ff35820e]
ダイアログ上にマクロでコントロールを配置したいので調べた...
addControl()というメソッドを見つけました。
ですが、使い方がよくわかりません。
addControl(
[in] string
[in] XControl
Name,
Control );
1つ目の引数は、コントロールの名前を指定するんだと思います...
2つ目の引数がわかりません。
追加したいコントロールを指定するんだろうとは思いますが
どういう書き方をしたらいいのかがわかりません。
ご回答を頂けると幸いです。
よろしくお願いします。
*** 回答 [#gc811fb4]
-一般的にダイアログにマクロでコントロールを配置するときに...
マクロでダイアログにコントロールを配置するには,たとえば...
&ref(runtimedialog.png);
Sub MainDialog()
Dim oDialog As Object
Dim oManager As Object
Dim oTextModel As Object, oClose As Object, oListModel A...
oManager = GetProcessServiceManager()
oDialogModel = oManager.createInstance("com.sun.star.a...
With oDialogModel
.setPropertyValue("Name","Dialog")
.setPropertyValue( "PositionX", 100 )
.setPropertyValue( "PositionY", 60 )
.setPropertyValue( "Height", 175 )
.setPropertyValue( "Width", 157 )
.setPropertyValue( "Title", "Menu" )
End With
oTextModel = oDialogModel.createInstance("com.sun.star...
With oTextModel
.setPropertyValue( "Name", "Contents" )
.setPropertyValue( "PositionX", 4 )
.setPropertyValue( "PositionY", 21 )
.setPropertyValue( "Width", 149 )
.setPropertyValue( "Height", 150 )
.setPropertyValue("MultiLine",true)
.setPropertyValue("VScroll",true)
.setPropertyValue("HardLineBreaks",false)
.setPropertyValue("Border",2)
End With
oClose = oDialogModel.createInstance("com.sun.star.awt...
With oClose
.setPropertyValue( "Name", "Close" )
.setPropertyValue( "PositionX", 123 )
.setPropertyValue( "PositionY", 4 )
.setPropertyValue( "Width", 30 )
.setPropertyValue( "Height", 12 )
.setPropertyValue("Label","Close")
.setPropertyValue("PushButtonType",2)
End With
oListModel = oDialogModel.createInstance("com.sun.star...
With oListModel
.setPropertyValue( "Name", "List" )
.setPropertyValue( "PositionX", 4 )
.setPropertyValue( "PositionY", 4 )
.setPropertyValue( "Width", 70 )
.setPropertyValue( "Height", 13 )
.setPropertyValue( "Dropdown",true)
End With
With oDialogModel
.insertByName("Contents",oTextModel)
.insertByName("Close",oClose)
.insertByName("List", oListModel)
End With
oDialog = oManager.createInstance("com.sun.star.awt.Un...
oDialog.setModel(oDialogModel)
oList = oDialog.getControl("List")
With oList
.addItems(Array("Else","Properties","Methods"),0)
.setText("Else")
End With
oDialog.setVisible(true)
oDialog.execute()
End Sub
順に説明していきます。
+GlobalServiceManager へのアクセス
+ダイアログのモデルオブジェクトの作成
+各コントロールモデルのインスタンスの作成
+ダイアログモデルオブジェクトへの各コントロールオブジェク...
+ダイアログオブジェクトの作成
+ダイアログオブジェクトへのダイアログのモデルオブジェクト...
+ダイアログオブジェクトの visibility (可視性) の設定
+ダイアログの表示
まずは,GlobalServiceManager を GetProcessServiceManager ...
つぎに,ダイアログのモデルオブジェクトを作成します。そし...
oDialogModel = oManager.createInstance("com.sun.star.a...
ここで作成した oDialogModel オブジェクトは次のようにして...
Dim oDialog As Object, oDialogModel As Object
oDialog = CreateUnoDialog(DialogLibraries.Standard.Dia...
oDialogModel = oDialog.getModel()
このオブジェクトのプロパティーとしてダイアログのサイズな...
各コントロールのモデルオブジェクトもやはりサービスをイン...
テキストコントロールは
oTextModel = oDialogModel.createInstance("com.sun.star...
コマンドボタンオブジェクトは
oClose = oDialogModel.createInstance("com.sun.star.awt...
などのようなサービスを使用します。
これらのコントロールには,「Name, PositionX, PositionY, W...
ダイアログモデルオブジェクトに各コントロールを ''insertBy...
With oDialogModel
.insertByName("Contents",oTextModel)
.insertByName("Close",oClose)
.insertByName("List", oListModel)
End With
つぎに,ダイアログオブジェクトのインスタンスを作成します。
oDialog = oManager.createInstance("com.sun.star.awt.Uno...
そのダイアログオブジェクトにダイアログモデルを設定します。
oDialog.setModel(oDialogModel)
これでダイアログにコントロールの追加ができました。
このようにして作成したダイアログは execute メソッドでその...
oDialog.setVisible(true)
最後に,ダイアログを呼び出して表示させます。
oDialog.execute()
-お忙しい中、大変詳しいご回答をありがとうございました。 ...
-あと、イベントが起きたときにそのイベントが起きたコントロ...
-かなり途中になってしまっていました。すいません。すぐに続...
イベントの記述ですが,これにはリスナーを使用します。使用...
リスナーの作成方法は次のとおりです。
Dim oActionListener As Object
oActionListener = CreateUnoListener("ActionListener_",...
上記のようにして作成したリスナーを次のようにしてコントロ...
Dim oCloseButton As Object
oCloseButton = oDialog.getControl("CommandButton1")
oCloseButton.addActionListener(oActionListener)
リスナー用の準備が必要で,ActionListener の場合は actionP...
Sub ActionListener_actionPerformed(oEvent)
MsgBox oEvent.Source.Dbg_Properties
MsgBox oEvent.Source.getModel().Dbg_Properties
End Sub
Sub ActionListener_disposing()
End Sub
disposing メソッドは全てのリスナーに備えられているメソッ...
こうすると,ボタンを押したときに ActionListener_actionPer...
ここでは,コマンドボタンを取り上げましたが他のコントロー...
-動的なコントロールの配置の「動的」具合がどれくらいか分か...
-大変詳しいご回答ありがとうございました。 これでなんとか...
#comment
Page: