KeyDown Problem!!!

Blitz3D Forums/Blitz3D Programming/KeyDown Problem!!!

kochOn(Posted 2006) [#1]
Hi there,
I am making a little Gui for my needs and I want to make an edit box which repeat the keys when they are maintained down. So I ve decided to use the Blitz Keydown function but I need to combine all the keys with the Shift one to make upper chars.
The problem is it don't work with all keys and apparently those which scancodes are above the shift scancode.

let's see:

------
Graphics3D 640, 480, 16, 2
SetBuffer GraphicsBuffer()

While Not KeyDown(1)
Cls
result = 0

For n = 1 To 127
k = KeyDown(n)
If k Then result = n : Exit
Next

Text 10, 10, result
Flip
Wend
-------

In this example I first press shift (sc = 42) then I combine with another one that modify the scancode.

What I ve constated on my computer is when I combine Shift with a key that have an upper scancode, the scancode stay at 42.

So, is there a way or maybe a dll that i could use to avoid this problem

thanks, köchOn


puki(Posted 2006) [#2]
I believe there is an 'include' in the archives. It is possibly somewhere in one of the demos that come with B3D - I think it caters for all combinations - including punctuation.

EDIT:
I got that wrong - "Krylar" designed it but it doesn't differentuate between upper and lower case.


puki(Posted 2006) [#3]
Have a look at this one:

http://www.blitzbasic.com/codearcs/codearcs.php?code=243


There are lots of input routines and stuff in here:
http://www.blitzbasic.com/codearcs/codearcs.php?cat=5


kochOn(Posted 2006) [#4]
Thanks Puki, it may help but as it use KeyHit, it not handle key repetition...


octothorpe(Posted 2006) [#5]
Mine does:
http://www.blitzbasic.com/codearcs/codearcs.php?code=251


octothorpe(Posted 2006) [#6]
What I ve constated on my computer is when I combine Shift with a key that have an upper scancode, the scancode stay at 42.


That's because the scancode for shift is 42 and your loop is only finding one scancode!


WolRon(Posted 2006) [#7]
Use AsyncKeyState()


kochOn(Posted 2006) [#8]
Hi Octothorpe,

This is exactly what I was looking for
Great code, Thanks to all.