ENTER mit TextEditBox und ComboBox erzwingenGibt es eine Möglichkeit, einen „Klick“ oder die Eingabetaste für TextEditBox und ComboBox zu erzwingen?
Betreff: ENTER mit TextEditBox und ComboBox erzwingenWenn Sie die Funktionen nicht dynamisch erstellen müssen, würde ich sagen, dass Sie einfach keine anonymen Funktionen verwenden (im Grunde die gleiche Idee wie Peter).
Namen sind standardmäßig hier(1);
f = function({self}, {},
print("Zeug")
);
somebox << Set Function(f);
Rufen Sie dann einfach f when f(somebox) auf, wenn Sie es ausführen möchten.
Betreff: ENTER mit TextEditBox und ComboBox erzwingenJa, tatsächlich. Funktion abrufen... Ich hatte einige Probleme, dies dauerhaft zum Laufen zu bringen.
Eine schwierig zu hackende Displaybox ist PopupBox. Es scheint nicht möglich zu sein, diese Menüskripte indirekt auszulösenBetreff: ENTER mit TextEditBox und ComboBox erzwingenIch mache manchmal eine.
click = nameexpr(obj << Get Function);
klicken()
Der Nameexpr ist nur ein Sicherheitsnetz, da es je nach Komplexität manchmal Probleme damit gibt.
Betreff: ENTER mit TextEditBox und ComboBox erzwingenWenn ich einen komplexen Ausdruck für ein bestimmtes Objekt habe, füge ich ihn in einen benannten Ausdruck ein und nenne ihn beim Namen. Wenn ich die Aktionen separat ausführen möchte, verweise ich einfach auf den Ausdruck.
my_expr = expr(
txt1 = teb1 << get text();
teb2 << set text("You entered: " || txt1);
);
nw = new window("Test",
teb1 = text edit box("", << set width(200),
<< set script(my_expr)
),
teb2 = text edit box("", << set width(200)),
bb = button box("OK",
nw << close window;
)
);Betreff: ENTER mit TextEditBox und ComboBox erzwingenGuter Punkt. Siehe meine letzte Antwort auf @txnelson
Der Schlüsselfaktor ist, dass ich das Skript des Objekts OHNE Benutzerinteraktion auslösen möchte. Zum Beispiel der Fall, dass ein Benutzer nichts ändern möchte (die zugrunde liegenden Funktionen müssen jedoch trotzdem ausgelöst werden).
Betreff: ENTER mit TextEditBox und ComboBox erzwingenIch hätte erwähnen sollen... Ich versuche, die Ausführung der zugehörigen Objektfunktionen zu erzwingen. (dh gesetzt durch: obj << setFunction(). Bei einigen Objekten wie ButtonBox können Sie button << click() ausführen. Bei anderen wie ComboBox können Sie Folgendes tun: obj << set( 1, runScript(1) ). Es scheint keine entsprechende Meldung für Textbearbeitungsfeld und ListBox zu geben.Betreff: ENTER mit TextEditBox und ComboBox erzwingenDieses Beispiel könnte etwas näher kommen. Wenn Sie den Fokus auf das erste Textbearbeitungsfeld setzen und es dann mit der Tabulatortaste oder der Maus verlassen, wird die Aktion ausgeführt und das zweite Textbearbeitungsfeld gefüllt.
nw = new window("Test",
teb1 = text edit box("", << set width(200),
<< set script(
txt1 = teb1 << get text();
teb2 << set text("You entered: " || txt1);)
),
teb2 = text edit box("", << set width(200)),
bb = button box("OK",
nw << close window;
)
);Betreff: ENTER mit TextEditBox und ComboBox erzwingenIch bin mir nicht sicher, ob ich Ihre Anfrage vollständig verstehe. Lassen Sie mich jedoch sehen, ob ich etwas Licht ins Dunkel bringen kann, und wenn ich das Ziel verfehle, können Sie möglicherweise einige Einzelheiten hinzufügen.
Text Edit Box() verfügt über keine Aktion, mit der Sie etwas tun können, wenn sich etwas in der Box ändert. (dh tebox << on change()). Ein definiertes Skript oder eine Funktion für Text Edit Box() erfordert, dass der Benutzer die Eingabetaste drückt, damit das Skript oder die Funktion ausgeführt wird.&amp;amp;amp;lt;/P&amp;amp;amp;gt;
&amp;amp;amp;lt;P&amp;amp;amp;gt;&amp;amp;amp;nbsp;&amp;amp;amp;lt;/P&amp;amp;amp;gt;
&amp;amp;amp;lt;P&amp;amp;amp;gt;Ein Kombinationsfeld führt automatisch ein bestimmtes Skript oder eine bestimmte Funktion aus, wenn eine neue Auswahl getroffen wird. Wenn ein Textbearbeitungsfeld() geändert wurde, aber keine Eingabetaste angegeben wurde und dann auf ein Kombinationsfeld geklickt wird, wird das Textbearbeitungsfeld() ausgeführt.&amp;amp;amp;lt;/P&amp;amp;amp;gt;
&amp;amp;amp;lt;P&amp;amp;amp;gt;&amp;amp;amp;nbsp;&amp;amp;amp;lt;/P&amp;amp;amp;gt;
&amp;amp;amp;lt;P&amp;amp;amp;gt;Hilft das?&amp;amp;amp;lt;/P&amp;amp;amp;gt;&amp;amp;amp;lt;/lingo-body&amp;amp;amp;gt;