Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zeit bis Tastendruck wiederholt wird (https://www.delphipraxis.net/129145-zeit-bis-tastendruck-wiederholt-wird.html)

blablab 13. Feb 2009 12:11


Zeit bis Tastendruck wiederholt wird
 
Hallo!

Wenn man unter windows eine taste drückt, dann erhält das fenster ja das ereignis "Taste down". wenn man die Taste dann gedrückt hält, kriegt das Fenster irgendwann immer wieder das ereignis nennen wir es mal "Taste gedrückt", und sobald man die Taste loslässt "Taste up".
Meine Frage ist nun, wie viel Zeit muss vergehen, dass nach "Taste down" das ereignis "Taste gedrückt" kommt.
Kann man das irgendwie zur Laufzeit auslesen?

Edit: Man kann das bei XP unter Systemsteuerung->Tastatur->Geschwindigkeit->Zeichenwiederholung->Verzögerung einstellen

Danke schonmal für eure Hilfe!
Gruß
Simon

himitsu 13. Feb 2009 12:24

Re: Zeit bis Tastendruck wiederholt wird
 
Zitat:

Zitat von blablab
Edit: Man kann das bei XP unter Systemsteuerung->Tastatur->Geschwindigkeit->Zeichenwiederholung->Verzögerung einstellen

du hast es ja im Grunde schon gesagt ^^

PS: In der Windows-Nachricht (zu den Tasten-Botschaften) selber gibt es noch ein Flag (glaub ich mal gesehn zu haben), welches besagt, ob die aktuelle Nachricht wvon soeiner "Tastenwiederholung" samt, oder ob die Taste wirklich grad gedrückt wurde.

DeddyH 13. Feb 2009 12:28

Re: Zeit bis Tastendruck wiederholt wird
 
Aus der Hilfe zu WM_KEYDOWN:
Zitat:

...
lKeyData

Value of lParam. Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table:

Value Description
0-15 Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user holding down the key.
...
[edit] Irgendwie war das jetzt aber am Thema vorbei, oder? :stupid: [/edit]

blablab 13. Feb 2009 12:33

Re: Zeit bis Tastendruck wiederholt wird
 
@himitsu:
aber ich will doch zur laufzeit diese verzögerung in millisekunden auslesen.
das kann man doch bestimmt mit irgendeiner funktion abfragen...
ich möchte die zeit auch nicht selber mitstoppen, weil ich die zeit schon beim ersten tastendruck brauche.

außerdem kann man in dem dialog bei der verzögerung nur zwischen kurz und lang wählen, was mir nicht allzuviel bringt.

himitsu 13. Feb 2009 13:19

Re: Zeit bis Tastendruck wiederholt wird
 
ja dann schau doch einfach nach?
irgendwo in der Registry stehen ja diese Zeiten.
Und die DP-Suche, sowie Google dürften dazu was liefen und vielleicht gibt's ja sogar schon 'ne fertige Funktion z.B. in den JEDIs. :gruebel:

eventuell mal nach "tastenwiederholung", "typematic registry", "keyboard typematic rate" oder sowas in der art suchen

blablab 13. Feb 2009 15:38

Re: Zeit bis Tastendruck wiederholt wird
 
Das kann ja gut sein, dass das irgendwo in der registry steht, aber wie soll ich das finden? wie soll ich denn nach einer zahl suchen, von der ich den wert nichtmal weiß??? ich kann doch net die ganze registry durchsuchen...
und ich habs ja schon versucht hier und auch bei google was zum thema zu finden bevor ich den thread eröffnet hab. das problem ist nur, dass ich nix gefunden hab.
ich kann deine einwände verstehen himitsu, weil es fragen gibt, die hier zum tausendsten mal gestellt werden und sich deshalb die leute die helfen wollen dumm vorkommen. aber ich hab wirklich nix dazu gefunden und ich dachte mir, vielleicht weiß das ja zufällig jemand.
ich will ja gar nicht, dass hier leute für mich stundenlang recherchieren. ich möchte nur, dass jemand der die antwort kennt oder einen guten tipp hat, mir hilft...

himitsu 13. Feb 2009 15:44

Re: Zeit bis Tastendruck wiederholt wird
 
nee, Einwande nich, aber das wo weiß ich auch nicht, :angel2:
drum hatte ich wenigstens noch versucht dir eventuell ein paar neue Suchwörter, für deine Suche, zu liefern :angel:

wenn ich mal etwas mehr Zeit hab, kann ich mich ja noch etwas umsehn.

blablab 13. Feb 2009 16:04

Re: Zeit bis Tastendruck wiederholt wird
 
ich hab mal in de hilfe gesucht und bin darauf gestoßen:
Verzögerung:
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, @integer, 0);
wiederholrate:
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, @integer, 0);

das problem ist nur, dass ich da eine Zahl im Bereich von 0-3 und 0-31 zurückgeliefert bekomme und ich weiß jetzt nicht für was das steht...

himitsu 13. Feb 2009 16:09

Re: Zeit bis Tastendruck wiederholt wird
 
MSDN-Library durchsuchenSystemParametersInfo

Zitat:

Zitat von SPI_GETKEYBOARDDELAY
Retrieves the keyboard repeat-delay setting, which is a value in the range from 0 (approximately 250 ms delay) through 3 (approximately 1 second delay). The actual delay associated with each value may vary depending on the hardware.

0=250ms
...
3=1000ms

Zitat:

Zitat von SPI_GETKEYBOARDSPEED
Retrieves the keyboard repeat-speed setting, which is a value in the range from 0 (approximately 2.5 repetitions per second) through 31 (approximately 30 repetitions per second). The actual repeat rates are hardware-dependent and may vary from a linear scale by as much as 20%.

0=400ms
...
31=33ms

alles so in etwa, da es nach Hardware abweichen kann.

blablab 13. Feb 2009 16:13

Re: Zeit bis Tastendruck wiederholt wird
 
Dankeschön himitsu!
:-D :-D :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 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