AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Getasynckeystate - Warten bis Taste wieder losgelassen wird
Thema durchsuchen
Ansicht
Themen-Optionen

Getasynckeystate - Warten bis Taste wieder losgelassen wird

Ein Thema von Muellermilchtrinker · begonnen am 4. Apr 2011 · letzter Beitrag vom 4. Apr 2011
Antwort Antwort
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#1

Getasynckeystate - Warten bis Taste wieder losgelassen wird

  Alt 4. Apr 2011, 17:56
Delphi-Version: 2009
Hallo DP,

ich warte mit einem Timer und Getasynckeystate, bis eine Taste gedrückt wird. (Bitte keine Diskussion über den Einsatz von einem Timer & Getasynckeystate)
Mein Problem ist nun, dass ich wenn ich die Taste gedrückt halte, dass dann meine Aktion ständig ausgeführt wird. Nun möchte ich aber, dass ich warte, bis die Taste wieder losgelassen wurde und dann die Aktion ausführen. Weiß jmd. wie das möglich ist. Ich hab schon die böse Variante ausprobiert, in einer Schleife warten, jedoch benötigt das extrem Rechenpower und mein Programm wird dabei blockiert, was nicht passieren darf.
Bin über jede Antwort dankbar.
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Getasynckeystate - Warten bis Taste wieder losgelassen wird

  Alt 4. Apr 2011, 17:59
Setz doch einen Marker (eine Boolean-Variable) auf true, wenn die Taste gedrückt wurde. Gibt GetAsyncKeyState dann zurück, dass die Taste nicht gedrückt ist und der Marker ist gesetzt, dann wurde die Taste losgelassen. Elegant ist das zwar nicht unbedingt, aber wir sollen ja nicht nachfragen ^^
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Muellermilchtrinker
Muellermilchtrinker

Registriert seit: 1. Aug 2009
447 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Getasynckeystate - Warten bis Taste wieder losgelassen wird

  Alt 4. Apr 2011, 18:29
Danke, dass funktioniert. Nun noch eine kleine Frage, wieso unterscheidet getasynckeystate zwischen dem großen Enter und dem Enter beim Nummernblock. Da bei mir nur der Enter am Nummernblock funktioniert, obwohl beide #13 sind
Chuck Norris doesn't need backups. He just uploads his files and lets the world mirror them.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Getasynckeystate - Warten bis Taste wieder losgelassen wird

  Alt 4. Apr 2011, 19:10
Das ist der Unterschied zwischen dem Tastencode und dem daraus generierten Zeichen - unterschiedliche Tastencodes können gleiche Zeichen generieren, aber es ist für manche Anwendungen eben wichtig dennoch zwischen diesen unterscheiden zu können.

Und: Ich finde Threads immer deutlich schöner als Timer, und in deinem Fall wäre es geradezu ideal, da du damit im Grunde Events ganz ähnlich gestalten könntest, wie es die VCL auch tut. Nur dass dann statt Windows dein Thread der Message-Generator ist.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz