Textmarken in Rahmen

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: Textmarken in Rahmen

Re: Textmarken in Rahmen

von susapo » Sa, 05.12.2020 16:23

mit sichtbar machen meine ich das, was man mit Feldnamen tun kann unter Ansicht-Feldnamen.
Also dass man auf einen Blick sieht, wo überall Textmarken stehen.

Re: Textmarken in Rahmen

von mikeleb » Sa, 05.12.2020 16:05

Hallo,
Textmarken sichtbar machen geht offenbar nicht im Writer, hat da jmd schon mal ein Makro geschrieben für?
Was meinst du mit "sichtbar machen"? Zum Finden bietet sich der Navigator an.

Re: Textmarken in Rahmen

von mikeleb » Sa, 05.12.2020 16:03

Hallo,
wenn klar ist, dass die Textmarke in einem Rahmen ist, reicht folgendes:

Code: Alles auswählen

Sub Main4
	KKDoc = thiscomponent
  	lz=KKDoc.getBookmarks().getByName("Lesezeichen 1")
  	lz_anker=lz.getanchor
   	textcursor = lz_anker.textframe.Text.CreateTextCursor
   	textcursor.gotoRange(lz_anker, false)
	textcursor.String = "Hr. Maier"
End Sub

Re: Textmarken in Rahmen

von susapo » Sa, 05.12.2020 14:28

Hallo Stephan,
herzlichen Dank!
Ja es ist bekannt, wo die Textmarke liegt, weil ich sie selber gesetzt habe. Insofern ist die erste Lösung perfekt.
Die zweite Lösung ist ja echt cool!, fahr den Karren solange gegen die Wand, bis vllt die Tür aufgeht.
Auf sowas komm ich immer gar nciht.

Hallo mikeleb,
Dank auch an dich. Deinen Code heb ich mir für später auf, zZ hab ich es nur mit selbst angelegten Textmarkwen zu tun.

mfG Michael
Textmarken sichtbar machen geht offenbar nicht im Writer, hat da jmd schon mal ein Makro geschrieben für?

Re: Textmarken in Rahmen

von mikeleb » Sa, 05.12.2020 14:07

Hallo,
es klappt auch, wenn man untersucht, wo sich das Lesezeichen befindet.

Code: Alles auswählen

Sub Main3
	KKDoc = thiscomponent
	formFrames = KKDoc.getTextFrames()
  	lz=KKDoc.getBookmarks().getByName("Lesezeichen 1")
  	lz_anker=lz.getanchor
	'standardmäßig sei das Lesezeichen im eigentlichen Fließtext
	oBereich=KKDoc
	'alternativ in einem Rahmen oder Tabelle?
  	lz_frame=lz_anker.textframe
  	lz_tab=lz_anker.cell
  	if isobject(lz_frame) then
  		oBereich=lz_frame
  	elseif isobject(lz_tab) then
  		oBereich=lz_tab
  	end if
   	textcursor = oBereich.Text.CreateTextCursor
   	textcursor.gotoRange(lz_anker, false)
	textcursor.String = "Hr. Maier"
End Sub

Re: Textmarken in Rahmen

von Stephan » Sa, 05.12.2020 13:25

WENN bekannt ist das in "Rahmen1" wirklich die Textmarke "KKAnsprech" vorhanden ist, dann z.B.:

Code: Alles auswählen

Sub Main
	KKDoc = thiscomponent
	formFrames = KKDoc.getTextFrames()
  
	for i = 0 to formFrames.Count -1 
      formFrame = formFrames(i) 
      if formFrame.Name = "Rahmen1" then
      	textcursor = formFrame.Text.CreateTextCursor
      	textcursor.gotoRange(KKDoc.getBookmarks().getByName("KKAnsprech").getAnchor, false)
		textcursor.gotoEndOfParagraph(True)
		textcursor.String = "Hr. Maier"
      End If
   Next i    
End Sub
ansonsten z.B.:

Code: Alles auswählen

Sub Main2
	KKDoc = thiscomponent
	formFrames = KKDoc.getTextFrames()
  
	On Error Resume Next
	for i = 0 to formFrames.Count -1 
      formFrame = formFrames(i) 
      	textcursor = formFrame.Text.CreateTextCursor
      	textcursor.gotoRange(KKDoc.getBookmarks().getByName("KKAnsprech").getAnchor, false)
		textcursor.gotoEndOfParagraph(True)
		textcursor.String = "Hr. Maier"
   Next i    
End Sub

Gruß
Stephan

Textmarken in Rahmen

von susapo » Fr, 04.12.2020 20:29

Und gleich ein neues Problem.
ich habe textmarken (Lesezeichen) in ein Wtiter-Dok eingefügt und will per makro dort Text ablegen. Funkt soweit auch gut mit
KKDoc = thiscomponent

textcursor= KKDoc.Text.CreateTextCursor

textcursor.gotoRange(KKDoc.getBookmarks().getByName("KKAnsprech").getAnchor, false)
textcursor.gotoEndOfParagraph(True)
textcursor.String = "Hr. Maier"
wenn die Textmarken aber in einem Rahmen stehen (Für's Anschriftenfeld) geht das nicht mehr.
ich kann die zwar auslesen mit

test = KKDoc.getBookmarks()

aber die obere Variante funktioniert nicht.
ich muß wohl einen textcursor für das frame machen, habe im Netz Teile gefunden wie

Code: Alles auswählen

formFrames = ThisComponent.getTextFrames()
  
   for i = 0 to formFrames.Count -1 
      formFrame = formFrames(i) 
      if formFrame.Name = "Rahmen1" then
      ...
"Rahmen1" wird gefunden, und dann weiß ich nicht weiter....
wie kann ich die Textmarken im Rahmen ansprechen?

Nach oben