Ereignisse beim Textfeld

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Ereignisse beim Textfeld

Beitrag 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.
Dateianhänge
Eigenschaften_Textfeld_Ereignisse.png
Eigenschaften_Textfeld_Ereignisse.png (6.84 KiB) 760 mal betrachtet
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: Ereignisse beim Textfeld

Beitrag von Karolus »

Hallo

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)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Ereignisse beim Textfeld

Beitrag 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.
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: Ereignisse beim Textfeld

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Ereignisse beim Textfeld

Beitrag 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.
System:
LibO 6 + LibO 7
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: Ereignisse beim Textfeld

Beitrag 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 )
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: Ereignisse beim Textfeld

Beitrag 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....

Code: Alles auswählen

Sub Main
msgbox("geändert")
End Sub
Danke dir, Karolus!
System:
LibO 6 + LibO 7
Antworten