Včera jsem se setkal s divným hlášením ASCII kódů pro numerickou klávesnici, pokud je držen Shift. Tedy Shift+numŠipka.
1) Když zmáčknu normální šipku doleva, tak dostanu kód 0 a 75, výsledně tedy 331.
2) Když zmáčknu numerickou šipku doleva, tak dostanu kód 0 a 75, výsledně tedy 331.
3) Když zmáčknu Shift+normální šipku doleva, dostanu rovněž 331
4) Když zmáčknu Shift+numerickou šipku doleva, dostanu 52 (ASCII kód "4")
V situaci č.4 se tedy klávesnice chová prapodivně. Chci se tedy zeptat, jestli to pozoruje i někdo další, nebo jestli je za tím můj ovladač klávesnice a jestli je to známá věc, jak to ošetřujete. Já jsem to pořešil hlídáním stavu Shiftu a případným překódováním, tedy takto:
if (w>45) and (w<58) and Je_shift then
case w of
46:w:=339;
47:w:=47; {o kodu 47 nevim nic}
48:w:=338;
49:w:=335;
50:w:=336;
51:w:=337;
52:w:=331;
53:w:=332;
54:w:=333;
55:w:=327;
56:w:=328;
57:w:=329;
end;
Nevím ale, jestli to bude fungovat s/bez nainstalované české/ruské/jiné klávesnice a jestli se to nebude prát s číslama na hlavní klávesnici.
Nejspíš bude.
Má někdo jiný nápad, jak to ošetřit?