[gelöst] Auf aktuellen Absatz/aktuelle Tabelle zugreifen

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

Moderator: Moderatoren

Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Auf aktuellen Absatz/aktuelle Tabelle zugreifen

Beitrag von komma4 »

Erzeuge einen TextCursor und bewege ihn zum ViewCursor:

Code: Alles auswählen

oViewCursor = _
 ThisComponent.getCurrentController().getViewCursor()
oTempTextCursor = _
 ThisComponent.getText().createTextCursor()
oTempTextCursor.gotoRange( oViewCursor , FALSE )
Du möchtest etwas ändern/einfügen, sonst würde Dir ja der ViewCursor ausreichen, oder?

sieh' Dir mal den Code aus DateTime2, Routine DateTime_setWriter an:

Code: Alles auswählen

If NOT IsEmpty( oViewCursor.TextTable ) Then
 print "Cursor in einer Texttabelle"
 exit Sub
End If
Hilft das weiter?
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)
manese
*****
Beiträge: 482
Registriert: Mo, 03.10.2005 17:20
Wohnort: Borgholzhausen
Kontaktdaten:

Re: [gelöst] Auf aktuellen Absatz/aktuelle Tabelle zugreifen

Beitrag von manese »

Hallo Winfried, hallo Forum,

gibt es auch eine Möglichkeit,
den Textcursor genau an die Stelle in einer Texttabelle zu setzen, an der der Viewcursor steht?

Im Prinzip bräuchte ich zwischen
If NOT IsEmpty( oViewCursor.TextTable ) Then
und dem
End If
einen Befehl, der genau an der Stelle einen Textcursor generiert.

Wahrscheinlich ist das Problem ganz leicht zu lösen, aber weder "Versuch-macht kluch" noch Literaturrecherche bringen mich wirklich weiter. Der ViewCursor lässt sich nicht wortweise bewegen, und an der oben genannten Stelle kriege ich keinen Textcursor generiert.

Alles Gute
matthias
manese
*****
Beiträge: 482
Registriert: Mo, 03.10.2005 17:20
Wohnort: Borgholzhausen
Kontaktdaten:

Re: [gelöst] Auf aktuellen Absatz/aktuelle Tabelle zugreifen

Beitrag von manese »

Hallo Winfried,
man sollte doch besser alles genau durchlesen, bevor man weiter fragt... :?
Ich habe die Lösung ohne Probleme in deinem Makro gefunden, vielen Dank! Ich benutze sie, um ein versehentlich klein geschriebens Wort mit einem großen Anfangsbuchstaben zu versehen:

Code: Alles auswählen

sub Majuskel
	Dim oDoc as object : oDoc = ThisComponent
	Dim oViewC as object : oViewC = oDoc.getCurrentController().getViewCursor()
	Dim oTextC as object
	If NOT isEmpty(oViewC.textTable) then
		oZelle = oViewC.Cell
		oTextC = oZelle.getText().createTextCursorByRange( oViewC )
		Else
		oTextC = oDoc.text.createTextCursorByRange(oViewC)
	Endif
	oTextC.gotoStartOfWord(False) : oTextC.goRight(1, True)
	Dim sAnf as String : sAnf = oTextC.getString()
	sAnf = UCase(sAnf)
	oTextC.setString(sAnf, True)
end sub
Alles Gute
matthias
Antworten