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.
Ereignisse beim Textfeld
Moderator: Moderatoren
Ereignisse beim Textfeld
- Dateianhänge
-
- Eigenschaften_Textfeld_Ereignisse.png (6.84 KiB) 760 mal betrachtet
System:
LibO 6 + LibO 7
LibO 6 + LibO 7
Re: Ereignisse beim Textfeld
Hallo
Probiers aus!
Karolus
Probiers aus!
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Ereignisse beim Textfeld
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.
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.
System:
LibO 6 + LibO 7
LibO 6 + LibO 7
Re: Ereignisse beim Textfeld
Hallo
Backspace erzeugt einerseits einen Keycode (1.Event)und der Keycode veranlasst das löschen des vorher eingegebenen Zeichens ( Event No Zwo )
Karolus
Backspace erzeugt einerseits einen Keycode (1.Event)und der Keycode veranlasst das löschen des vorher eingegebenen Zeichens ( Event No Zwo )
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Ereignisse beim Textfeld
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.
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.
System:
LibO 6 + LibO 7
LibO 6 + LibO 7
Re: Ereignisse beim Textfeld
Hallo
Hier wird das Ereignis 'Text geändert' bei Eingabe von Backspace nur einmal ausgelöst (LO 4.2 linux)
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 )
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Ereignisse beim Textfeld
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!
Code: Alles auswählen
Sub Main
msgbox("geändert")
End Sub
System:
LibO 6 + LibO 7
LibO 6 + LibO 7