LabVIEWForum.de
"On Focus"-Event - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: "On Focus"-Event (/Thread-On-Focus-Event)



"On Focus"-Event - Lupin - 14.01.2011 16:47

Wie bekomme ich ein Event, wenn der Benutzer in ein Control klickt oder es mit Tab auswählt? Kann es wirklich sein, dass es kein "on Focus" Event für Controls gibt? Zumindest die Events, die ich für z. B. ein String-Control auswählen kann, sind dafür nicht brauchbar.


"On Focus"-Event - Richard - 14.01.2011 19:27

Hallo,

für das auf ein Control klicken gibts das Event Mouse Down.
Für das Tab kannst du ja ein Event erstellen, das auf App-Ebene auf Keydown reagiert und bei Tab-Key den Keyfocus ausliest und bei dem gewünschten Control den Code ausführt.

Bei Tab auf OK wird das VI beendet.

Gruß Richard

Lv09_img2
[attachment=31698]


"On Focus"-Event - Lupin - 17.01.2011 14:51

Genau dieses Zusammenbasteln aus anderen Events wollte ich vermeiden. Das ist alles andere als wartungsfreundlich. Es verdoppelt Code ganz abgesehen von der zusätzlich notwendigen Logik, ob es überhaupt ein "on focus" war (nicht jeder Klick auf ein Control ist ein solches Event). Und bei jedem Keydown ein Event zu generieren, obwohl ich nur Tabs und nur in bestimmte Controls abfangen will, ist auch nicht grade "sauber". Ich bin etwas verwundert, dass soetwas, das es in anderen Programmiersprachen seit Jahrzehnten gibt, nicht verfügbar ist (und eben weil ich's nicht glauben können habe, habe ich hier gefragt). Da muss ich wohl schauen, ob ich ohne die Funktionalität auskomme und hoffen, dass es irgendwann mal implementiert wird.


"On Focus"-Event - unicorn - 17.01.2011 23:14

Wozu brauchst Du das "On Focus" Ereignis?


"On Focus"-Event - Lupin - 18.01.2011 17:26

' schrieb:Wozu brauchst Du das "On Focus" Ereignis?
Für mehrere kleine Dinge, die einem Benutzer hoffentlich helfen:
Als erstes möchte ich in einem String-Control einen Default-Text haben, der gelöscht wird, sobald es Fokus hat (z. B. "Dateinamen hier angeben..."). Und wenn man das Feld verlässt und es steht nichts darin, soll wieder dieser Text auftauchen.
Zweitens möchte ich für bestimmte Controls eine Hilfe (in einem zusätzlichen Text-Feld) anzeigen, sobald es Fokus hat.
Drittens soll die Farbe die Zusammengehörigkeit (die sich ändern kann) von Controls andeuten (Ich möchte darstellen, welche Felder durch das jeweils ausgewählte beinflusst werden).

Alles Dinge, für die ein "OnFocus"-Event genau das richtige wäre.


"On Focus"-Event - unicorn - 18.01.2011 21:01

Zu 2.)
Hier könntest Du "Description" und "Tip" für die entsprechenden Controls ausfüllen. Der Benutzer kann dann mit Ctrl+H die Kontexthilfe mit den eingegeben Hilfetexten - allerdings in einem eigenen Fenster - aufrufen.

Zu 1.) und 3.)
Hier wäre in der Tat das "OnFocus"-Event sehr nützlich. Mit dem "Mouse Enter" und "Mouse Leave" könnte man das "OnFocus"-Event ersetzen, solange die Maus benutzt wird.


"On Focus"-Event - GerdW - 18.01.2011 21:30

Hallo Lupin,

bis es ein echtes KeyFocus-Event gibt, kannst du ja folgendes machen:
- Referenzen der betreffenden Controls in einem Array bündeln
- in einer Schleife regelmäßig den "KeyFocus" dieser Referenzen abfragen
- UserEvent erzeugen unter Verwendung der Referenz, die gerade KeyFocus hat...

Ja, ist Polling. Aber würde funktionieren.
Um eine andere Lösung zu beschleunigen: NI IdeaExchange! Edit: new ideaSmile

@Unicorn:
Funktioniert die Kontexthilfe auch bei einer Exe mit eigenem (oder abgeschaltetem) Menü?


"On Focus"-Event - unicorn - 18.01.2011 23:51

' schrieb:..
@Unicorn:
Funktioniert die Kontexthilfe auch bei einer Exe mit eigenem (oder abgeschaltetem) Menü?

Ja, klappt auch mit Exe. Wenn ich jedoch die Menubar des Haupt-VI ausblende, weiß ich nicht, ob es klappt.


"On Focus"-Event - NWOmason - 19.01.2011 07:56

' schrieb:Ja, klappt auch mit Exe. Wenn ich jedoch die Menubar des Haupt-VI ausblende, weiß ich nicht, ob es klappt.

Ja, in meiner Exe gehts auch. Habe dort eine eigene Menübar am laufen, die Standardmenübar ist ausgeblendet. Das Hilfefenster lässt sich trotzdem aufrufen, wobei bei mir aber nix drin steht, da ich für die Elemente nichts erstellt habeSmile

Beste Grüße,
NWO