My_Keyboard
(0) = CHR$(0) + "27,ESC" + STRING$(2,0) + "15104,F1" + STRING$(2,0) + "15360,F2" + _
My_Keyboard
(1) = "`1234567890-=" + CHR$(0) + "19200,BKSP" + CHR$(0)My_Keyboard
(2) = CHR$(0) + "9,TAB" + CHR$(0) + "QWERTYUIOP[]\"My_Keyboard
(3) = CHR$(0) + "100301,CAPS" + CHR$(0) + "ASDFGHJKL;'" + CHR$(0) + "13,ENTER" + CHR$(0)My_Keyboard
(4) = CHR$(0) + "100304,SHIFT" + CHR$(0) + "ZXCVBNM,./" + CHR$(0) + "100303,SHIFT" + CHR$(0)My_Keyboard
(5) = CHR$(0) + "100306,CTRL" + STRING$(2,0) + "0,WIN" + STRING$(2,0) + "100308,ALT" + _
k = KB_Input(My_Keyboard(), 50, 30, 50, 100)
DIM Keyboard_Values
(l
TO u
, 0 TO 256) FOR i
= l
TO u
'get longest line LL = LL + 1
keyboard_image
= _NEWIMAGE((Xsize
+ 2) * LL
, (Ysize
+ 2) * (u
- l
+ 1), 32) 'now build the keyboard
top = (i - l) * Ysize + Ypos
count = 0
left = (count) * Xsize + Xpos
count = count + 1
repeat = 1
'look for the comma
comma_position
= INSTR(j
, KB
(i
), ",") IF comma_position
THEN 'we have a value, label value$
= MID$(KB
(i
), j
+ 1, comma_position
- j
- 1) j = comma_position + 1
ELSE 'cry loud and hard so we can sort it out while programming our keyboard layout scream_and_die:
PRINT "You have an invalid keyboard layout!"
IF end_position
THEN 'we're extracting the label out$
= MID$(KB
(i
), j
, end_position
- j
) repeat = 1
j = end_position
LINE (left
, top
)-STEP(Xsize
* repeat
, Ysize
), -1, B
Keyboard_Values(i, count) = c
count = count + 1
repeat = repeat - 1
Keyboard_Values(i, count) = c
Hardware_Keyboard_Image
= _COPYIMAGE(keyboard_image
, 33)
oldmouse = -1
_PUTIMAGE (Xpos
, Ypos
), Hardware_Keyboard_Image
Xon
= INT((mx
- Xpos
) / Xsize
) + 1 Yon
= INT((my
- Ypos
) / Ysize
) + l
'LOCATE 1, 1: PRINT Xon, Yon
oldmouse = mb