OOobbs/14
質問二つのcalcファイル、A.sxcファイルとB.sxcを開いているとき、 A.sxcがactiveの状態からB.sxcをActivateすることは「WindowのActivate」の投稿によってできるようになりました。ありがとうございました。 こんどは、Dialogにボタンを二つ置いて、AボタンをクリックするとA.sxcを表示し、BボタンをクリックするとB.sxcを表示することを試みています。 ところが、A.sxcを表示した状態からDialogをexecute()して、Bボタンを押すと確かに、B.sxcが表示されるのですが、Dialogが隠れてしまいます。B.sxcを表示した状態からDialogをexecute()して、Aボタンを押すと確かに、A.sxcが表示されるのですが、Dialogがやはり隠れてしまいます。これはB_frame.getContainerWindow.toFront()を使ってB.sxcを表示させるため、Dialogの前面に現れてしまうのは仕方ないのかも知れません。しかし、別のFrameが表示されるとDialogが隠れてしまうのは不便です。 これを解決するために、別のFrameを表示した後で、DialogをendExecute()し、改めてcreateUnoDialog()とexecute()を実行させると、再びDialogを前面に持ってくることができます。しかし、Dialogにリストボックスや他のコントロールを貼るようにした場合は表示が遅くなってしまうはずです。 Dialogを常に前面に表示させておく方法はあっていいと思うのですがこれが分かりません。どなたかいい方法を教えて頂けないでしょうか? 回答
Basic Dialog をドキュメントの切り替えと作業に使用するようですが,Dialog を execute するときにマクロを実行したドキュメントに,マウスなどによるカーソルでのアクセスができないので,このような作業には向いていないと思います。この,ドキュメントへアクセスできなくなる挙動を解除する方法は現在のところありません (OpenOffice.org API ML から)。 Dialog を execute するためのマクロをコマンドラインから起動してみたのですが,一つのドキュメントから実行されたようなかたちに起動されてしまい,やはり toFront メソッドでは前面に持ってくることができませんでした。
|