INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Event wenn Taste gedrückt gehalten wird



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.07.2012, 09:03
Beitrag #1

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
Event wenn Taste gedrückt gehalten wird
Hi,

ich steuere einen Motor an. Dafür gibt es einen Befehl, der ihn los fahren lässt und einen Befehl, der ihn wieder stoppt.

Das klappt soweit:
Ich wollte das ganze mit nur einem Bedienelement Button steuern:
Wird der Button mit der Maus gedrückt gehalten (True), fährt der Motor. Wird die Taste losgelassen stoppt er (False).
Das klappt auch soweit. Ich hab dafür das Wertänderungs event des Buttons benutzt. Das Schaltverhalten steht auf "bis zum loslassen schalten". Er löst dadurch das Event aus, wenn er gedrückt wird und nochmal wenn er losgelassen wird (siehe Bild).

Jetzt das Problem:
Ich möchte, dass das ganze auch per Hotkey funktioniert. Das Problem dabei ist, wenn ich einen Hotkey für den Button einstelle, z.B. die F1-Taste, und ich F1 dann drückte, wird der Button ganz schnell hintereinander ausgelöst. Also ganz viele Events abgefeuert. Es soll aber nur ein Event beim drücken und eins beim loslassen ausgelöst werden.

Gibt es dafür einen Lösungsansatz?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.07.2012, 11:42
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Bahn Wenn Du auf "Value change" abfragst, dann wird doch der Tastendruck bei Deiner Event-Struktur nur einmal ausgewertet.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 11:49 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2012 11:50 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Hallo Markus,

es gibt doch sowas wie eine Tastenwiederhol-Funktion (schon im OS), welche bei Taste-gedrückt-halten mehrere Tasten-Druck-Events auslöst. Dies wird den OP stören...

@phylin:
Probier doch mal andere Events wie "Taste gedrückt" und "Taste losgelassen" (stattdessen/mit zusätzlicher Logik) aus...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 12:27 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2012 12:32 von phylin.)
Beitrag #4

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
RE: Event wenn Taste gedrückt gehalten wird
(19.07.2012 11:42 )Y-P schrieb:  Bahn Wenn Du auf "Value change" abfragst, dann wird doch der Tastendruck bei Deiner Event-Struktur nur einmal ausgewertet.

Gruß Markus

Hab ich auch gedacht. Aber wenn man den schalter auf "bis zum loslassen schalten" stellt, dann kriegt man 2 events. Einmal fürs draufdrücken und einmal fürs loslassen. fand ich gradios.

@gerd:
Tastenwiederhol funktion hatte ich auch ausprobiert. da passiert bei mir garnichts. egal wie ich den button einstelle, das event wird nie ausgelöst.

Ich hab auch probiert einen dummy button mit hotkey zu belegen, der dann den go/stop button nur 1x aktiviert. Er aktiviert diesen dann nur 1x obwohl er gedrückt gehalten wird (siehe anhang). Aber das läuft irgendwie auch nicht so sauber. Und ich hab keine möglichkeit zu prüfen, wann der Button los gelassen wird.

Meine neuste Überlegung ist, dass man den hotkey antippt für GO und nochmal antippt für Stop, statt ihn gedrückt zu halten.
Aber ich werd mir auch mal gedanken über "Taste gedrückt" machen...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 12:31
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Hallo phylin,

"Taste gedrückt" und "Taste losgelassen" entsprechen genau deinen beiden "Value change"-Events bei dem Button. Du solltest nur den "Hotkey" nicht mit dem Button verknüpfen, um doppelte Event-Generierung zu vermeiden. Man kann Tasten nämlich auch (unabhängig von Eingabeelementen) über das VI abfragen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 12:40
Beitrag #6

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Wenn ich ein Event "taste gedrückt" mit einem Button verknüpfe klappt das bei mir nicht. Mach ich etwas falsch?
z.B.
Taste gedrückt event: LED auf True
Taste losgelassen event: LED auf False

Jetzt kann ich den Button drücken wie ich will. Nichts passiert.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.07.2012, 13:06
Beitrag #7

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Hallo phylin,

evtll. ist hier Polling der Tastatur gemeint und nicht explizit die Eventstrutkur. Mit der "Input Device Control" unter der 7.1 Palette->Advanced.
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 13:11 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2012 13:20 von phylin.)
Beitrag #8

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
RE: Event wenn Taste gedrückt gehalten wird
(19.07.2012 13:06 )erik.brenncke schrieb:  Hallo phylin,

evtll. ist hier Polling der Tastatur gemeint und nicht explizit die Eventstrutkur. Mit der "Input Device Control" unter der 7.1 Palette->Advanced.
Gruß

Stimmt, danke. steht sogar in der context hilfe drin. Habs 2x gelesen und immer falsch verstanden... jetzt funktionierts. mal sehen wie ich das sinnvoll einbauen kann. edit: wobei es bei taste gedrückt nicht wirklich klar wird. die kontexthilfe zu taste losgelassen ist da um einiges deutlicher.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 15:11 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2012 15:15 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Hallo phylin,

nee, ganz einfach mit 2 Events arbeiten! Den Tastenstatus musst du dir schon selber merken...

Edit:
- Du kannst natürlich noch auf eine bestimmte Taste filtern, die Event-Struktur stellt entsprechende Werte bereit.
- Du kannst natürlich noch deinen Button damit verknüpfen...


Angehängte Datei(en)
8.5 .vi  taste.vi (Größe: 8,78 KB / Downloads: 245)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2012, 15:53
Beitrag #10

phylin Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Nov 2011

8.5
2011
DE


Deutschland
RE: Event wenn Taste gedrückt gehalten wird
Ja, so hatte ich es jetzt auch gelöst, danke. Hatte dazu ein bespiel im NI forum gefunden mit "VTaste" auslesen.
Sehr praktisch, weil ich sonst für 12 buttons je 2 events gebraucht hätte. Nur etwas blöd das bei "Taste losgelassen" nicht auch der "Vtaste" abgefragt werden kann. Das macht das ganze nochmal umständlicher mitm Schieberegister, für den Fall das jemand Hotkey gedrückt hält und nebenbei zusätzlich eine taste antippt.
(wobei der Schieberegister glaube ich momentan garnichts bringt, so wie ich ihn eingebaut hab, muss ich nochmal drüber nach grübeln...)

PS: was ist mit scancode gemeint bei diesen events?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Event Taste lange gedrückt hansi9990 1 2.398 17.02.2019 12:55
Letzter Beitrag: hansi9990
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 6.584 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Eine Reset-Taste auf mehrere Registerkarte ARaj 11 7.832 18.11.2015 18:43
Letzter Beitrag: Lucki
  Bei Event Boolean ändern und bei erneutem Event resetten Shieva 4 4.354 07.07.2015 09:43
Letzter Beitrag: Lucki
  Simulation der F5 Taste mit LV Tobi Wan Kenobi 3 3.445 21.05.2015 09:00
Letzter Beitrag: Tobi Wan Kenobi
  Reset wenn Save gedrückt baggio2008 9 6.442 24.04.2015 15:32
Letzter Beitrag: baggio2008

Gehe zu: