LabVIEWForum.de - Problem mit "Key Navigation"

LabVIEWForum.de

Normale Version: Problem mit "Key Navigation"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo LV-Profis

habe ein Problem mit der "Key Navigation". Ich hätte gern ein SubVI, in dem ich per
NumPad den Wert einer Variable ändere und die Eingabe mit "Enter" bestätige.
Im Prinzip tut es das, was es soll. Nur wird der Wert nicht übernommen. Der
wird nur übernommen, wenn ich mit der Maus auf den OK-button klicke.
Hat jemand eine Erklärung dafür?

Ich häng mal das VI an, damit ihr es probieren könnt

besten dank,
gruss <<oenk>>
Hallo,

mache doch eine Event-Structure, wo Du dann abfragst, ob "Enter" gedrückt wurde (Key down und dann vorne in der Struktur "VKey"). Wurde es dann gedrückt, dann kannst in einem Case innerhalb der Event-Structure den Wert übergeben. Das würde mir spontan dazu einfallen.

Gruß Markus

<!--quoteo(post=13406:date=15.08.2006, 13:10:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 15.08.2006, 13:10) [url=index.php?act=findpost&pid=13406][/url]</div><div class='quotemain'><!--quotec-->Hallo LV-Profis

habe ein Problem mit der "Key Navigation". Ich hätte gern ein SubVI, in dem ich per
NumPad den Wert einer Variable ändere und die Eingabe mit "Enter" bestätige.
Im Prinzip tut es das, was es soll. Nur wird der Wert nicht übernommen. Der
wird nur übernommen, wenn ich mit der Maus auf den OK-button klicke.
Hat jemand eine Erklärung dafür?

Ich häng mal das VI an, damit ihr es probieren könnt

besten dank,
gruss <<oenk>>[/quote]
Hallo Markus,

danke für den Tip
Hat mir aber nichts direkt gebracht.....bin aber trotzdem, oder gerade wegen dem Tip auf
die Lösung gekommen.

Ich setzte den "key focus" auf die numerische Eingabe. Drücke ich jetzt "Enter" bestätige ich
die Eingabe und gleichzeitig beende ich dei "while"-Schleife. Somit wurde die Eingabe noch
nicht oder nur undefiniert bestätigt.

Jetzt frage ich die "Enter"-Taste des NumPad direkt ab, deaktiviere den Focus auf die numerische
Eingabe und siehe da, es geht.....

Bischen blöd, aber durchaus logisch

Gruss,
<<oenk>>

wen's interessiert, hier die verbesserte Version
' schrieb:mache doch eine Event-Structure,
Natürlich geht das gut mit einer Event-Struktur, z.B so:
[attachment=2895]
(Es gibt nur diesen einen Ereigniscase, timeout gelöscht)
So wie ich oenk verstanden habe, geht es ihm aber gar nicht um Alternativvorschläge, sondern er möchte gern wissen, warum das so nicht funktioniert. Ich erkläre mir das so:
Dem OK-Schalter wurde als Tastaturkürzel die Enter-Taste zugewiesen.
Wenn man eine Zahl eingibt und dann mit der Maus OK anklickt, passiert folgendes:
Der Fokus wird von der Zahl weggenommen, und auf die Taste gelenkt. Mit der Wegnahme des Fokus wird die Zahleneingabe "rechtskräftig". Die Taste wird durch diesen Mausklick außerdem gedrückt und damit das Programm beendet.
Wenn man eine Zahl eingibt und ENTER drückt, geschieht aber dies:
Wegen der Tastaturkürzel-Zuaordnung wird die Taste betätigt, der Fokus bleibt aber auf der Taste. Das Enter scheint nur einmal ein Wirkung zu haben, wenn man also eine Drucktaste mit Enter verknüpft, kann man im ganzen Programm niemals mehr eine Zahleneingae mit ENTER abschließen, sondern nur noch mit der Maus oder mit TAB. Die neue Zahleneingabe wurde also nie wirklsam

Edit: Inzwischen biste ja selbst auf die Erklärung gekommen, aber doppelt hält besser..
Im Übrigen: Die grauenhafte Umständlichkeit dieser Progrämmchen kann ich nicht nachvollziehen..
@Lucki: ich wollte beides. Eine Lösung und eine Erklärung Wink
Aber auf die Erklärung von dir bin ich auch gekommen.
Ich hab das nicht so elegant mit einer EventStructure gelöst, sonder wie oben beschrieben
über eine direkte Tastenabfrage.
Irgendwie werd ich mit denen EventStructures nicht warm...Ich vermeide sie, wo es nur geht

besten Dank euch beiden
<<oenk>>

Edit: genauBig Grin
Hi,

die Event-Structures sind oftmals sehr hilfreich. Ich wüsste gar nicht, wie ich ohne sie programmieren soll, weil sie einem vieles erleichtern. Du musst Dich einfach mal damit beschäftigen, dann siehst Du, dass das gar nicht so schlimm ist. Big Grin
Wenigstens hast Du die Lösung gefunden. Big Grin

Gruß Markus

<!--quoteo(post=13421:date=15.08.2006, 15:06:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 15.08.2006, 15:06) [url=index.php?act=findpost&pid=13421][/url]</div><div class='quotemain'><!--quotec-->@Lucki: ich wollte beides. Eine Lösung und eine Erklärung Wink
Aber auf die Erklärung von dir bin ich auch gekommen.
Ich hab das nicht so elegant mit einer EventStructure gelöst, sonder wie oben beschrieben
über eine direkte Tastenabfrage.
Irgendwie werd ich mit denen EventStructures nicht warm...Ich vermeide sie, wo es nur geht

besten Dank euch beiden
<<oenk>>

Edit: genauBig Grin[/quote]
' schrieb:Im Übrigen: Die grauenhafte Umständlichkeit dieser Progrämmchen kann ich nicht nachvollziehen..

Welche Umständlichkeit? Dass ich das Keyboard abfrage, oder dass ich das ueberhaupt mache?

Das Keyboard abzufragen ist nicht elegant, gebe ich zu, aber effektiv...

' schrieb:....die Event-Structures sind oftmals sehr hilfreich.

Seh ich schon ein, verwende ich auch dann und wann, aber nur sehr ungern Big Grin
<!--quoteo(post=13425:date=15.08.2006, 16:24:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 15.08.2006, 16:24) [url=index.php?act=findpost&pid=13425][/url]</div><div class='quotemain'><!--quotec-->Welche Umständlichkeit? Dass ich das Keyboard abfrage, oder dass ich das ueberhaupt mache?[/quote]
Entschuldige, vergiß das Attribut vor der Umständlichkeit, ich neige zu Übertreibungen. Mit gefällt vor allem die Bedienoberfläche nicht, Du willst offenbar, daß mit Ende der Eingabe das Programm automatisch beendet wird, hast aber dann noch den zusätzlichen Button.
Kleine Nebensächlichket: Das Öffen/Schließen des Sub-Vi kannst Du auch unter VI-Eigenschaften einstellen (Rechte Maustaste auf Ikon, Fenstererscheinungsbild/anpassen).
Der Ereignisknoten hat die Eigenschaft, daß, wenn Du den Standardwert beibehält und nur mit RETURN bestätigst, das trotzdem als Wertänderung und somit als Ereignis gezählt wird. Wenn man aber auf Ereignisse verzichten will, aber keinen OK-Button haben möchte, dann müßte es so funktionieren:
[attachment=2898]
Hallo Lucki,

ich hab mich nicht angegriffen gefühlt. Ich wollte nur wissen, was nicht gefällt.
Bin immer auf der Suche nach konstruktiver Kritik!
Will mich ja schliesslich verbessern....

Jetzt zur Erklärung, warum ich das so gemacht habe:
von manchen Programmen ist man es ja gewohnt, dass man Aktionen zum Einen mit der Enter-Taste
bestätigt und beendet und gleichzeitig die Möglichkeit hat, das ganze über eine Maus-Eingabe
zu bestätigen und beenden. Aus diesem Grund wollte ich die Bedienfreundlichkeit erhalten und
anpassen.
Dass ich das Sub-VI über das Menü einstellen kann weiss ich, mach ich aber nur ungern, weil ich so
schnelleren Zugriff auf die Eigenschaft habe. Ich kann im letzten Fenster der Sequenz die Schliessung
deaktivieren (ist hilfreich, wenn das Programm nicht so funktioniert, wie man es sich vorgestellt hat Smile)

Hab mir dein Bsp angeschaut und gefällt mir sehr gut. Ist übersichtlich und schlank programmiert!
Wenn ich es mal ohne Button haben will, werde ich mich deiner Idee bedienen.

Besten Dank für die Kritik
Christian
Zitat:Wenn ich es mal ohne Button haben will, werde ich mich deiner Idee bedienen.
Also jetzt habe ich begriffen: Du willst also den Butten doch haben, was ich für vernünftig halte.
Dazu diesen "Verbesserungsvorschlag": Wenn der Focus auf dem Button liegt, den wird er durch Betätigen der Return-Taste bedient, und zwar auch dann, wenn man keine Tastatursteuerung für den Button installiert hat. Es kommt alo nur darauf an, in der richtigen Situation den Focus auf dem Button zu haben.
Hier Beispiele, wie es dann funktionieren würde.
Mit Ereignissteuerung.
[attachment=2904]
Normal, aber umständlich:
[attachment=2906]
Seiten: 1 2
Referenz-URLs