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:
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.
Basic-Laufzeitfehler hat geschrieben:Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call!.
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ürgen
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören
Bei einem Datumsfeld (nicht an Daten gebunden) möchte ich bei [b]Fokusverlust [/b]prüfen, ob das Datum gewissen Bedingungen entspricht. Wenn nicht, sollte der Fokus in diesem Feld bleiben. Mit dem "üblichen" Verfahren für [b]setFocus [/b]geht das nicht:
[code]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.[/code]
[quote="Basic-Laufzeitfehler"]Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call!.[/quote]
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ürgen
[color=#800000]Moderation,4[/color]: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören