🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Basic findet keine Lesezeichen
Basic findet keine Lesezeichen
Hallo Forum,
ich möchte über ein kleines Lo-Basic-Programm Lesezeichen in einem Dokument anspringen und dort Text einfügen der über einen Dialog eingegeben wurde.
Aus dem Basic Programmierhandbuch von Sun habe ich folgende Sequenz übernommen:
Sub GotoTextMarke(Textmarke as String,Text as String)
dim oDoc as Object
dim oBookmark as Object
dim oCursor as Object
oDoc = StarDesktop.CurrentComponent
oBookmark = oDoc.Bookmarks.getByName(Textmarke)
oCursor = oDoc.Text.createTextCursorByRange(oBookmark.Anchor)
oCursor.String = Text
End Sub
Bei meinen Testläufen bekomme ich aber immer die im Anhang dargestellte Fehlermeldung, mit der ich sehr wenig anfangen kann. Über Hilfe bin ich sehr dankbar.
UliK
ich möchte über ein kleines Lo-Basic-Programm Lesezeichen in einem Dokument anspringen und dort Text einfügen der über einen Dialog eingegeben wurde.
Aus dem Basic Programmierhandbuch von Sun habe ich folgende Sequenz übernommen:
Sub GotoTextMarke(Textmarke as String,Text as String)
dim oDoc as Object
dim oBookmark as Object
dim oCursor as Object
oDoc = StarDesktop.CurrentComponent
oBookmark = oDoc.Bookmarks.getByName(Textmarke)
oCursor = oDoc.Text.createTextCursorByRange(oBookmark.Anchor)
oCursor.String = Text
End Sub
Bei meinen Testläufen bekomme ich aber immer die im Anhang dargestellte Fehlermeldung, mit der ich sehr wenig anfangen kann. Über Hilfe bin ich sehr dankbar.
UliK
-
- Beiträge: 35
- Registriert: Sa 28. Mai 2011, 15:30
Re: Basic findet keine Lesezeichen
Hallo,
Du musst dem Makro in der Zeile
den Namen der Textmarke mitgeben die Du ansprechen willst.
Zum Beispiel so:
oder so:
Freelancer
Du musst dem Makro in der Zeile
Code: Alles auswählen
oBookmark = oDoc.Bookmarks.getByName(Textmarke)
Zum Beispiel so:
Code: Alles auswählen
oBookmark = oDoc.Bookmarks.getByName("DeineTextmarke")
Code: Alles auswählen
....
Textmarke = "DeineTextmarke"
oBookmark = oDoc.Bookmarks.getByName(Textmarke)
....
Re: Basic findet keine Lesezeichen
Lieber Freelancer,
vielen Dank für Deine Antwort. Leider funktioniert auch dies nicht, es erscheint die gleiche Fehlermeldung. Das Programm ist so gestaltet, dass der Procedur GotoBookmark der Name des Lesezeichens und der einzufügende Text als Parameter übergeben werden.
Wird hingegen das Lesezeichen mit einer kleinen Programmsequenz angelegt, so kommt keine Fehlermeldung, der Text wird aber nicht an der Textmarke eingefügt.
Grüße
UliK
vielen Dank für Deine Antwort. Leider funktioniert auch dies nicht, es erscheint die gleiche Fehlermeldung. Das Programm ist so gestaltet, dass der Procedur GotoBookmark der Name des Lesezeichens und der einzufügende Text als Parameter übergeben werden.
Wird hingegen das Lesezeichen mit einer kleinen Programmsequenz angelegt, so kommt keine Fehlermeldung, der Text wird aber nicht an der Textmarke eingefügt.
Grüße
UliK
Re: Basic findet keine Lesezeichen
hab' nicht viel Erfahrung mit Bookmarks, aber so? :
Code: Alles auswählen
oCursor = oBookmark.Anchor.Text.createTextCursorByRange(oBookmark.Anchor)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
-
- Beiträge: 35
- Registriert: Sa 28. Mai 2011, 15:30
Re: Basic findet keine Lesezeichen
Hallo UliK,
Du übergibst hier
Text as String
Text ist aber ein fester Begriff in Starbasic, dass siehst Du an der blauen Darstellung des Begriffs in der IDE, únd ist somit als Variable nicht verwendbar.
Hier mal ein lauffähiger Code mit Parameterübergabe:
Freelancer
Hmm, mir ist da noch etwas aufgefallen:UliK hat geschrieben:Wird hingegen das Lesezeichen mit einer kleinen Programmsequenz angelegt, so kommt keine Fehlermeldung, der Text wird aber nicht an der Textmarke eingefügt.
Du übergibst hier
Code: Alles auswählen
Sub GotoTextMarke(Textmarke as String,Text as String)
Text ist aber ein fester Begriff in Starbasic, dass siehst Du an der blauen Darstellung des Begriffs in der IDE, únd ist somit als Variable nicht verwendbar.
Hier mal ein lauffähiger Code mit Parameterübergabe:
Code: Alles auswählen
Sub Eintrag_TM
GotoTextMarke("TM1","Mein Text")
End Sub
Function GotoTextMarke(Textmarke as String,oText as String)
dim oDoc as Object
dim oBookmark as Object
dim oCursor as Object
oDoc = thisComponent
oBookmark = oDoc.Bookmarks.getByName(Textmarke)
oCursor = oDoc.Text.createTextCursorByRange(oBookmark.Anchor)
oCursor.String = oText
End Function
Re: Basic findet keine Lesezeichen
Bei mir funktionieren beide Codes:
Die falsche Verwendung von Schlüsselwörtern müsste schon beim Kompilieren, spätenstens aber beim Aufruf
einen Fehler erzeugen, schließlich sind die Argumente ja nicht optional.
Hast Du den Code schon mal nach einem kompletten Neustart versucht - vllt. hast Du ja nur ein temporäres Runtime-Problem - viel mehr steht in der Fehlermeldung nämlich auch nicht drin
Code: Alles auswählen
oCursor = oDoc.Text.createTextCursorByRange(oBookmark.Anchor)
und
oCursor = oBookmark.Anchor.Text.createTextCursorByRange(oBookmark.Anchor)
Code: Alles auswählen
Sub GotoTextMarke(Textmarke as String,Text as String)
Hast Du den Code schon mal nach einem kompletten Neustart versucht - vllt. hast Du ja nur ein temporäres Runtime-Problem - viel mehr steht in der Fehlermeldung nämlich auch nicht drin

g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Basic findet keine Lesezeichen
Hallo
vielen Dank für eure Hilfe, es funktioniert mit sText und dem anderen Aufruf
oCursor = oBookmark.Anchor.Text.createTextCursorByRange(oBookmark.Anchor)
Danke
UliK
vielen Dank für eure Hilfe, es funktioniert mit sText und dem anderen Aufruf
oCursor = oBookmark.Anchor.Text.createTextCursorByRange(oBookmark.Anchor)
Danke
UliK
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.