Feldauslesen an CursoPosition bzw. Selection

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

Moderator: Moderatoren

Scalaia990
***
Beiträge: 76
Registriert: Mi, 29.04.2009 23:50

Feldauslesen an CursoPosition bzw. Selection

Beitrag von Scalaia990 »

Hallo habe wiedermal ein Problem wo mir weder die Hilfe noch das Web weiterhelfen kann.

Möchte den Feldbefehl auslesen an welchem der Cursor steht bzw. welcher markiert ist.

Ich kann zwar alle Feldbefehle nacheinander auslesen, möchte jedoch nur das der markierte ausgelesen wird.

Hier mein Macro welches mir sämtliche Feldbefehle eines Dokumentes ausliest.

Sub textfieldauslesen
oDoc = thiscomponent

oTextFieldEnum = oDoc.getTextFields.createEnumeration

WHILE (oTextFieldEnum.hasMoreElements()) AND (bFeldGefunden = FALSE)
oTextField = oTextFieldEnum.nextElement()

IF (oTextField.supportsService("com.sun.star.text.textfield.ConditionalText")) THEN

sCondition = oTextField.Condition
sTrueContent = oTextField.TrueContent
sFalseContent = oTextField.FalseContent

msgbox "condText" & chr(13)& sCondition & chr(13)& sTrueContent & chr(13)& sFalseContent

END IF
WEND

End Sub

Wie kriege ich hin dass er mir nur den/die selektierten ausliest? Wer kann mir da weiterhelfen?

Gruss und Dank

Scalaia990
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Feldauslesen an CursoPosition bzw. Selection

Beitrag von DPunch »

Aloha

Code: Alles auswählen

oDoc = thisComponent
oSelection = oDoc.CurrentSelection
If oSelection.SupportsService("com.sun.star.text.TextRanges") Then
	For n = 0 To oSelection.Count - 1
		If NOT isEmpty(oSelection(n).TextField) Then
			oThisField = oSelection(n).TextField
			If oThisField.SupportsService("com.sun.star.text.textfield.ConditionalText") Then
				sCondition = oThisField.Condition
				sTrueContent = oThisField.TrueContent
				sFalseContent = oThisField.FalseContent
				MsgBox "condText" & chr(13)& sCondition & chr(13)& sTrueContent & chr(13)& sFalseContent
			End If
		End If
	Next n
End if
Funktioniert allerdings nur, solange vor den Textfeldern nicht auch Leerzeichen oder anderer Text markiert sind.
Wenn Du ausserdem mehrere gleichzeitig markierst (weil sie z.B. in einer Zeile stehen und Du einfach die ganze Zeile markierst), wird nur das erste ausgelesen.
Scalaia990
***
Beiträge: 76
Registriert: Mi, 29.04.2009 23:50

Re: Feldauslesen an CursoPosition bzw. Selection

Beitrag von Scalaia990 »

Hallo DPunch,

vielen Dank funktioniert wunderbar. Das Wochenende kann kommen.

Gruss

Scalaia990
Antworten