Hallo Leutz,
ich habe eine Dialogbox mit einem Textfeld erstellt.
Ich starte meine Dialogbox mit folgendem Code:
Code: Alles auswählen
Option Explicit
Dim oDialog as Object 'globale Definition des Dialoges
Dim oControlModel as Object
Dim oControlView as Object
REM Dialogbox öffnen und Text im Textfeld ausgeben
Sub execDlg_PDANotice
Dim oBib as Object
Dim oDlg as Object
Dim oListener As Object
REM zuerst muss die Dialogbibliothek (hier im Dokument eingebunden!) geladen werden
DialogLibraries.LoadLibrary("Standard")
oBib = DialogLibraries.getByName( "Standard" )
oDlg = oBib.getByName( "Dlg_PDANotice" )
oDialog = CreateUnoDialog( oDlg )
REM MRI - UNO Object Inspection Tool (Python)
Dim oMRI As Object
Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
oMRI = CreateUnoService( "mytools.Mri" )
oControlModel = oDialog.getControl( "TextField1" ).Model
oControlView = oDialog.getControl( "TextField1" ).View
oControlModel.Text = "Blaufaselblubb" 'in Textfeld schreiben
oMRI.inspect ( oControlView )
oDialog.execute() 'Dialog öffnen
End Sub
Nun möchte ich automatisch ermitteln, wenn Text ausgewählt wurde.
Wenn ich mir mit dem Inspector (MRI) das die View
oControlView ansehe bekomme ich folgende Listener:
Code: Alles auswählen
(Listeners)
com.sun.star.awt.XFocusListener
com.sun.star.awt.XKeyListener
com.sun.star.awt.XMouseListener
com.sun.star.awt.XMouseMotionListener
com.sun.star.awt.XPaintListener
com.sun.star.awt.XTextListener
com.sun.star.awt.XWindowListener
com.sun.star.lang.XEventListener
com.sun.star.util.XModeChangeApproveListener
com.sun.star.util.XModeChangeListener
Leider stellt keiner der o.a. Listener eine Methode zur Überwachung der Selektierung zur Verfügung. Die View hat eine Property
Selection (Struct). Aber ich habe noch nicht rausgefunden, welcher Listener das auswerten könnte....
Wenn ich mit dem Inspector das Model
oControlModel betrachte, erhalte ich folgende Listener:
Code: Alles auswählen
(Listeners)
com.sun.star.beans.XPropertiesChangeListener
com.sun.star.beans.XPropertyChangeListener
com.sun.star.beans.XVetoableChangeListener
com.sun.star.lang.XEventListener
Dummerweise (und natürlich konsequent logisch!) hat das Model natürlich nicht die Property
Selection - jedoch den Listener
com.sun.star.beans.XPropertiesChangeListener der die Properties eines Objektes auf Veränderung prüfen könnte.
Die Eigenschaftsbox im Dialogeditor bietet (natürlich!) auch kein Event an, welches das prüft.
Wie kann ich auf eine Selektierung des Textes triggern (listen...), wenn ich z.B. Text mit der Maus auswähle?
Über Vorschläg zur Vorgehensweise würde ich mich sehr freuen.
Btw.: Ich werwende OOO 2.4.2 unter XP/SP2
Danke und Grüße,
Billy