Textfelder im Writer auslesen

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

Moderator: Moderatoren

Ein__Stadtmensch
***
Beiträge: 61
Registriert: Do, 18.12.2003 10:08

Textfelder im Writer auslesen

Beitrag von Ein__Stadtmensch »

So, ich habe nun ein Makro, in dem ich Textfelder in dem Writer "ansprechen" kann:

Code: Alles auswählen

Dim Doc As Object
Dim TextFieldEnum As Object 
Dim TextField As Object 
Dim I As Integer 

Doc = ThisComponent 
TextFieldEnum = Doc.getTextFields.createEnumeration

While TextFieldEnum.hasMoreElements() 
   Textfield = TextFieldEnum.nextElement()
   Master = Textfield.gettextfieldmaster()
   
   If master.name="Test1" then
   ????
   End If
Wend 

Doc.getTextFields().refresh()
end sub
Wenn das Textfeld den Namen "Test1" hat, dann will ich nun, dass mit diesem Text etwas geschieht. Wie kann ich denn aber nun den Text ansprechen?

In dem konkreten Fall soll der Text in eine Calc-Tabelle eingefügt werden. Aber wie geht das? (Das soll da bei ??? hin)

Code: Alles auswählen

Zelle.String = Textfield.getString
geht schon einmal nicht. Was muss denn da anstatt von getString hin?
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo Stadtmensch,

also, Textfelder sind noch so ein Problemchen in Basic. Da gibt es noch ein paar Ungereimtheiten.
While TextFieldEnum.hasMoreElements()
Textfield = TextFieldEnum.nextElement()
Master = Textfield.gettextfieldmaster()

If master.name="Test1" then
????
End If
Wend
Die Zeile mit dem "Master" brauchst du eigentlich nicht.
Textfield.content gibt dir den Inhalt des Textfeldes wieder.

Wenn du das Textfeld als Eingabefeld eingeführt hast, dann gibt es eine auslesbare Eigenschaft "hinweis" (hint), den du zur Unterscheidung verwenden kannst - vorausgesetzt, du gibst auch Unterschiede an.

Also:

sHinweis = Textfield.hint ' als String, der Eingabehinweis
sInhalt = Textfield.content ' als String der Inhalt

Und wenn du den Sring hast, dann ist es auch kein Problem, diesen Deiner Zelle zuzuordnen sprich einzuschreiben,

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten