ich mache seit einiger Zeit meine ersten Gehversuche mit Python und nutze Python dabei in LibreOffice.
Wie kann ich mit Python durch alle Steuerelemente eines Dialogs in LibreOffice interieren, wenn der Dialog bereits per StarBasic gestartet ist?
Derzeitige Situation (StarBasic!):
Im Dialog ist eine Schaltfläche, die folgendes Makro startet:
Code: Alles auswählen
Sub StartSuche()
Msgbox findControl(dia_eingabe, "txt_Mobil")
End Sub
Function findControl(dialog As Object, cn As String)
Dim ctl
findControl = "Nichts gefunden"
For Each ctl In dialog.Controls
If ctl.Model.Name = cn Then
findControl = ctl.Text
Exit Function
End If
Next ctl
End Function
Code: Alles auswählen
Sub StartSuche()
oMasterScriptProviderFactory = createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
g_MasterScriptProvider = oMasterScriptProviderFactory.createScriptProvider("")
oScript = g_MasterScriptProvider.getScript("vnd.sun.star.script:mysqlgetdata4.py$findControl?language=Python&location=user")
RS_Python = oScript.invoke(Array(dia_eingabe, "txt_Mobil"), Array(), Array())
Msgbox RS_Python
End Sub
Code: Alles auswählen
def findControl(x, y):
return "Test"
Die Frage ist wie ich die bestehende StarBasic Funktion "findControl" in Python implementiere.
Da das aber wahrscheinlich umfangreich ist, möchte ich lieber fragen: Wo finde ich Informationen zum gewünschten Dialog-Zugriff über das Dialog-Objekt, welches von StarBasic aus als Parameter an die Python-Funktion übergeben möchte und wso finde ich Informationen zur grundsätzlichen Handhabung von LibreOffice Dialogen und Steuerelementen in Python.
Eine Suche, hier im Forum, lieferte mir nur diesen Thread:
viewtopic.php?f=19&t=43994&hilit=LibreOffice+dialog
Eine Besonderheit meines Anliegens ist möglicherweise das mein Dialog nicht an ein LibreOffice-Dokument 'gebunden' ist, also kein direkter Bezug zum ThisComponent-Objekt existiert.
Gruß
Stephan