Bookmark fehler, wenn eingebettes Objekt makiert ist

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gerhard.muellner
*
Beiträge: 10
Registriert: Mi, 06.04.2011 23:27

Bookmark fehler, wenn eingebettes Objekt makiert ist

Beitrag von gerhard.muellner »

die folgende funktion "SelectionJumpToBookmark" funktioniert im writer nur solange kein eingebettes objekt makiert ist (grüne punkte um das objekt)

die funktion sucht das als string übergebene bookmark, und wenn diese existiert springt der cursor an die stelle des bookmarks.
zum Testen das macro ErrorTest aufrufen. (eine Datei mit eingebetteter Tabelle habe ich angehängt).

Code: Alles auswählen

function SelectionJumpToBookmark(Bookmark as string) as boolean
  dim cnt as long
  dim bm as string
  dim oBookmark as object
  
  cnt=ThisComponent.Bookmarks.count
  do
    cnt=cnt-1
	bm=ThisComponent.Bookmarks.ElementNames(cnt)
  loop until (cnt=0) or (bm=Bookmark)
  
  if (bm=Bookmark) then
	oBookmark=ThisComponent.Bookmarks.getByName(Bookmark).Anchor

was mache ich falsch?
	ThisComponent.CurrentController.getviewCursor().gotorange(oBookmark, False)
	SelectionJumpToBookmark=true
  else
	SelectionJumpToBookmark=false
  endif
end function

sub ErrorTest
  SelectionJumpToBookmark("Ende")
end sub
der laufzeitfehler entsteht in der zeile:
ThisComponent.CurrentController.getviewCursor().gotorange(oBookmark, False)

was muss ich tun damit das springen zum bookmark trotz makierten objekt funktioniet!
Dateianhänge
ErrorTest.odt
(12.96 KiB) 32-mal heruntergeladen
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Bookmark fehler, wenn eingebettes Objekt makiert ist

Beitrag von komma4 »

gerhard.muellner hat geschrieben:

Code: Alles auswählen

' was mache ich falsch?
	ThisComponent.CurrentController.getviewCursor().gotorange(oBookmark, False)
was muss ich tun damit das springen zum bookmark trotz makierten objekt funktioniet!
getViewCursor() holt das markierte Objekt.

Erzeuge stattdessen einen Textcursor.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Bookmark fehler, wenn eingebettes Objekt makiert ist

Beitrag von DPunch »

Aloha

Wenn Dein Ziel ist, das Bookmark sichtbar anzuspringen, dann füg einfach folgende Zeile direkt vor der Fehlermeldung ein:

Code: Alles auswählen

ThisComponent.CurrentController.Select(ThisComponent.Text.Start)
gerhard.muellner
*
Beiträge: 10
Registriert: Mi, 06.04.2011 23:27

Re: Bookmark fehler, wenn eingebettes Objekt makiert ist

Beitrag von gerhard.muellner »

wieder eine prefekte lösung. vielen dank.
Antworten