[gelöst]Cursorsprung an andere Textmarke mit markierten Bild

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Cursorsprung an andere Textmarke mit markierten Bild

Re: Cursorsprung an andere Textmarke mit markierten Bild

von pk444 » Di, 09.09.2008 07:01

Hallo Michael,

vielen Dank. Jetzt läufts.

pk444

Re: Cursorsprung an andere Textmarke mit markierten Bild

von ykcim » Mo, 08.09.2008 13:08

Hallo,

die Ursache für diesen Fehler ist das eigentlich erwischte Objekt mit getViewCursor. Du hast dann die Grafik erwischt und diese Objekt hat die Eigenschaften und Methoden nicht des Text-Objektes. Daher geht gotorange nicht.
Man muss vorher prüfen ob man das richtige Objekt hat (Prüfen muss auf das Textobjekt). Ist es das falsche kann man den ViewCursor neu an den Anfang des Dokumentes mit createtextcursor und select setzen.
Leider geht die Prüfung nicht. Weil OO mal wieder macht was es will.

Code: Alles auswählen

  mytextCursor=ThisComponent.text.createtextcursor()
  ThisComponent.getCurrentController().select(mytextCursor)
  Cursor = thiscomponent.CurrentController.getviewCursor()

if thiscomponent.Bookmarks.hasByName("test") then
Bookmark = thiscomponent.Bookmarks.getByName("test").Anchor
Cursor.gotorange(Bookmark, False)   
end if 

mfg
Michael

[gelöst]Cursorsprung an andere Textmarke mit markierten Bild

von pk444 » Mo, 08.09.2008 10:56

Hallo,

ich benötige Eure Hilfe. Trotz Suchens uns Ausprobierens bin ich noch nicht weitergekommen.

Folgendes Problem:

Wenn ich mittels:

Code: Alles auswählen

Cursor = thiscomponent.CurrentController.getviewCursor()
if thiscomponent.Bookmarks.hasByName("bild") then
 Bookmark = thiscomponent.Bookmarks.getByName("bild").Anchor
 Cursor.gotorange(Bookmark, False)   
end if
eine Textmarke 'bild' anspringe, also mit einem VisibleCursor, und an dieser Stelle ein Bild einfüge:

Code: Alles auswählen

Sub insertimage(url$)
 Dim oFrame
 Dim oDisp
 Dim oProp(1) as new com.sun.star.beans.PropertyValue
 oFrame = ThisComponent.CurrentController.Frame
 oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
 oProp(0).Name = "FileName"
 oProp(0).Value = url$
 oProp(1).Name = "AsLink"
 oProp(1).Value = False
 oDisp.executeDispatch(oFrame, ".uno:InsertGraphic", "", 0, oProp())
end sub
dann kommt beim Wechsel auf eine neue Textmarke 'unterschrift' mit dem Befehl:

Code: Alles auswählen

Cursor = thiscomponent.CurrentController.getviewCursor()
 if thiscomponent.Bookmarks.hasByName("unterschrift") then
 Bookmark = thiscomponent.Bookmarks.getByName("unterschrift").Anchor
 Cursor.gotorange(Bookmark, False)   
end if
der Fehler "No text selection"

Ich habe herausgefunden, dass nach dem Einfügen des Bildes, das Bild markiert ist, also mit den vier grünen Punkten umgeben ist. Ich gehe davon aus, dass der Cursor jetzt verschwunden ist, und ich ihn daher nicht mehr zur nächsten Textmarke bewegen kann. Das Setzen eines neuen Cursors brachte keinen Erfolg, da die Markierung immer noch auf dem Bild ist.

Ich konnte auch herausfinden, dass sobald ich die Markierung des Bildes mittels manuellen Klick irgendwo in das Dokument aufhebe, dass Makro, also die Ansteuerung der neuen Textmarke funktioniert.

Das Ganze lässt sich auch ohne grösseren Aufwand nachvollziehen. Einfach ein Bild in ein OO-Dokument einfügen, Bild markieren, so dass es die grünen Punkte erhält und

Code: Alles auswählen

Cursor = thiscomponent.CurrentController.getviewCursor()
if thiscomponent.Bookmarks.hasByName("bild") then
 Bookmark = thiscomponent.Bookmarks.getByName("bild").Anchor
 Cursor.gotorange(Bookmark, False)   
end if
ablaufen lassen. Der Fehler tritt immer an der Zeile
#Cursor.gotorange(Bookmark, False)
auf.

Habt Ihr eine Ahnung, wie ich die neue Textmarke anspringen kann, bzw. wie ich die Markierung des Bildes aufheben kann?

Vielen Dank schon mal im Voraus.

pk444

Nach oben