0

IOW マクロの実行時に OOo の元に戻す/やり直しを正しく機能させるにはどうすればよいですか?

これは私の以前の質問に関連しています: #853176

4

2 に答える 2

1

OOo マクロを記述するために JavaScript を好む人のために、動作するはずの最小限のスニペットを次に示します(テスト済みですが、このコードをより大きなコンテキストから分離しました)。

importClass( Packages.com.sun.star.document.XUndoManager );
importClass( Packages.com.sun.star.document.XUndoManagerSupplier );
var doc           = XSCRIPTCONTEXT.getDocument();
var undo_manager  = UnoRuntime.queryInterface(XUndoManagerSupplier, doc).getUndoManager();
undo_manager.enterUndoContext( 'your descriptive title here' ); 
// get stuff done
undo_manager.leaveUndoContext(); 
于 2014-01-02T21:49:01.623 に答える
1

UndoManager と対話して、enterUndoContext()マクロの最初と最後に呼び出すことができますleaveUndoContext()。例えば:

Dim undo As Object
undo = ThisComponent.UndoManager
undo.enterUndoContext("MyAtomicTest")
...
[YOUR COMPLEX OPERATIONS HERE]
...
undo.leaveUndoContext

これにより、ユーザーには「MyAtomicTest」として表示されるアトミックな元に戻す操作が作成されます。

于 2012-09-28T20:34:08.253 に答える