In Writer möchte ich nach einem Text suchen und wenn er gefunden wurde, positionieren Sie die Ansicht an den Anfang der Ansicht/des Fensters.Open/Libre Office-Makro, um die Ansicht zur Auswahl zu blättern
Verwendung des folgenden Codes,
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = ":"
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
wechselt die Ansicht und zeigt die Auswahl aber es ist nicht an einem bestimmten Ort. Ich möchte, dass es oben im Fenster/Ansicht angezeigt wird.
Ich habe auch an anderer Stelle die Verwendung von ThisComponent.currentController.getViewData()
und restoreViewData()
gefunden. Also habe ich experimentiert und festgestellt, wie man die zurückgegebenen Daten ändert, um einen vertikalen Bildlauf zu erhalten, aber nichts passiert. Zum Beispiel ...
vd = ThisComponent.currentController.getViewData()
vdParts = Split(vd, ";")
vdParts(6) = CLng(vdParts(6)) + 1000
vd = join(vdParts, ";")
ThisComponent.currentController.restoreViewData(vd)
Irgendwelche Vorschläge?
PS: Ich bin mit Version 5.0.5.2 unter Windows 7 x64
Thx Jim. Ich habe versucht, einen Ansichts-Cursor, aber in meinen Experimenten der Ansichts-Cursor änderte nicht die Ansicht, um die Auswahl anzuzeigen. Ich erinnerte mich dann an die Dispatcher Beispiele und dachte, es zu versuchen, und ich war angenehm überrascht, dass es tat. – Vic
Nachdem ich den vorherigen Kommentar gepostet und Ihren Vorschlag von anderen gesehen habe, habe ich festgestellt, dass die Ansicht nicht aktualisiert wird, wenn ein Makro vom Editor aus ausgeführt wird. Ich musste eine Tastenkombination zuweisen und das Makro so ausführen, dass es die Ansicht änderte ... ein Designfehler ??? – Vic
Normalerweise führe ich keine Makros aus dem Editor aus, da dies den Editor zur aktuellen Komponente macht (was nützlich sein kann, aber nicht das, was wir in diesem Fall wollen). Stattdessen gehe ich normalerweise zu "Extras -> Makros -> Makro ausführen" mit Tastaturkürzeln. Um es zu ermöglichen, vom Editor aus zu starten, anstatt ThisComponent zu verwenden, verwenden Sie die Komponente des Textdokuments, beginnend mit [desktop.getComponents()] (https://www.openoffice.org/api/docs/common/ref /com/sun/star/frame/XDesktop.html#getComponents). –