[gelöst] Base: Fokusverlust verhindern nicht mit setFocus
Verfasst: Sa, 03.11.2012 18:29
Bei einem Datumsfeld (nicht an Daten gebunden) möchte ich bei Fokusverlust prüfen, ob das Datum gewissen Bedingungen entspricht. Wenn nicht, sollte der Fokus in diesem Feld bleiben. Mit dem "üblichen" Verfahren für setFocus geht das nicht:
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören
Code: Alles auswählen
Sub main_dateModified(oEvent as Object)
oCtrl = oEvent.Source
if Len(oCtrl.Text) <> 10 then ' als Beispiel für eine Fehleingabe
oDocView = thisComponent.getCurrentController()
oDocView.getControl(oCtrl).setFocus
exit Sub
rem usw.
Die Meldung übersteigt zwar meine Englisch-Kenntnisse, aber ich kann mir die Ursache erklären: Fokusverlust beißt sich mit dem Setzen des Fokus. Wie kann ich trotzdem den Fokusverlust verhindern bzw. rückgängig machen? Das Ereignis "Text modifiziert" ist sehr ungünstig, weil dann nach jeder einzelnen Taste geprüft würde; das Ereignis "Modifiziert" steht leider nicht zur Verfügung. Danke für Tipps! JürgenBasic-Laufzeitfehler hat geschrieben:Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call!.
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören