Seite 1 von 1
Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 11:39
von TrueColor
Hallo,
ich möchte gern ein Macro an ein Textfeld binden, welches ausgeführt wird, sobald sich im Inhalt des Textfeldes eine Änderung ergibt. Da gibt es 2 Ereignisse, die meiner Meinung nach in Frage kämen: "modifiziert" und "Text modifiziert". Wann werden die beiden Ereignisse ausgelöst? Welches der beiden ist für meine Zwecke das richtige? In der Hilfe gibt es zwar einen Eintrag, der Ereignisse beschreibt, aber die beiden sind in der Liste nicht mit drin.
Vielen Dank.
Re: Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 12:13
von Karolus
Hallo
Probiers aus!
Karolus
Re: Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 14:09
von TrueColor
Hm... ja, ok, wäre auch 'ne Möglichkeit! *g*
Also:
"modifiziert" reagiert auf das Abschließen der Eingabe (nach einer Änderung des Inhalts) mit Enter, bei Tab oder beim Rausklicken mit der Maus.
"Text modifiziert" reagiert bei jedem Zeichen, welches eingegeben wird, bei Backspace wird das Event seltsamerweise 2x (Warum?) ausgelöst.
Re: Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 15:09
von Karolus
Hallo
Backspace erzeugt einerseits einen Keycode (1.Event)und der Keycode veranlasst das löschen des vorher eingegebenen Zeichens ( Event No Zwo )
Karolus
Re: Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 17:58
von TrueColor
Hm... kann man das irgendwie ohne großen Aufwand abfangen? Das stört zwar in meinem Anwendungsfall nicht, aber kostet eben 2x Zeit.
Ich gehe mal davon aus, dass das Backspace nicht in die mit dem Textfeld korrospondierende Zelle geschrieben wird, also dass das nicht als T E S T chr(8) übertragen wird. Also meine Idee: Per Basic den Inhalt des Textfeldes abgreifen und mit der verknüpften Zelle vergleichen und nur bei gleich das Macro ausführen. Damit unterbinde ich die Aktion bei Event #1.
Nun die große Frage: Wie kann ich mit Basic auf den Inhalt des Textfeldes zugreifen? Oder gibts eine einfachere/sinnvollere/bessere Lösung?
Edit: Die ganze Sache diente eigentlich dazu, auf den Listener zu verzichten, der die mit dem Textfeld verknüpfte Zelle auf Änderungen abhört. Sollte also nicht aufwendiger sein, als einen Listener zu verwenden.
Re: Ereignisse beim Textfeld
Verfasst: Mi, 30.04.2014 19:20
von Karolus
Hallo
Hier wird das Ereignis 'Text geändert' bei Eingabe von Backspace nur einmal ausgelöst (LO 4.2 linux)
Nun die große Frage: Wie kann ich mit Basic auf den Inhalt des Textfeldes zugreifen?
Code: Alles auswählen
sub test( ereignis )
mri( ereignis)
print( ereignis.Source.Text )
Re: Ereignisse beim Textfeld
Verfasst: Mo, 05.05.2014 09:52
von TrueColor
Seltsam, jetzt hab ich meine Testdatei neu gebaut, weil ich die andere versehentlich gelöscht hatte. Nun habe ich auch nur noch 1 Ereignis bei Backspace. Ich bin verwirrt....
Danke dir, Karolus!