Недавно добавленные исходники

•  Animation Loaders  697

•  DeLiKaTeS Tetris (Тетрис)  5 696

•  TDictionary Custom Sort  7 655

•  Fast Watermark Sources  7 346

•  3D Designer  10 554

•  Sik Screen Capture  7 872

•  Patch Maker  8 095

•  Айболит (remote control)  8 154

•  ListBox Drag & Drop  6 948

•  Доска для игры Реверси  100 161

•  Графические эффекты  8 216

•  Рисование по маске  7 612

•  Перетаскивание изображений  6 214

•  Canvas Drawing  6 581

•  Рисование Луны  6 504

•  Поворот изображения  5 682

•  Рисование стержней  4 604

•  Paint on Shape  3 300

•  Генератор кроссвордов  4 290

•  Головоломка Paletto  3 432

•  Теорема Монжа об окружностях  4 252

•  Пазл Numbrix  2 756

•  Заборы и коммивояжеры  3 659

•  Игра HIP  2 467

•  Игра Go (Го)  2 452

•  Симулятор лифта  2 861

•  Программа укладки плитки  2 297

•  Генератор лабиринта  3 021

•  Проверка числового ввода  2 519

•  HEX View  2 930

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Преобразовать код символа в скан-код клавиши



Автор: Sniknik

для буквы 'Ф' его и не будет, 0 невозможно преобразовать. посмотри ее значение (Ord) чему равно? а клавиш всего 101шт. (но не все так просто, 101 это наоборот скэн коды надо считать) в твоем случае букву 'Ф' надо переводить в анг. вариант 'A' и тогда MapVirtualKey(Key,0) дает скэн код. короче не работает с MapVirtualKey с локализованными раскладками а AnsiMapVirtualKey пока нет.


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
var st: string;
begin
 if WinKey <  Key then begin
   WinKey:= Key;
   Edit1.Text:= 'Key : '+IntToStr(Key)+' Char : '+Chr(Key);
 end;
 // MapVirtualKey
 Memo1.Lines.Add('Key : '+IntToStr(Key)+' Char : '+Chr(Key)+' MVK : '+
  IntToStr(MapVirtualKey(Key,0)));
 if ssShift in Shift then st:= '1'
 else st:= '0';
 if ssAlt in Shift then st:= st + '1'
 else st:= st+'0';
 if ssCtrl in Shift then st:= st + '1'
 else st:= st+'0';

 if ssLeft in Shift then st:= st + '1'
 else st:= st+'0';
 if ssRight in Shift then st:= st + '1'
 else st:= st+'0';
 if ssMiddle in Shift then st:= st + '1'
 else st:= st+'0';
 if ssDouble in Shift then st:= st + '1'
 else st:= st+'0';
 Memo1.Lines.Add('State Shift/Alt/Ctrl/Left/Right/Middle/Double : '+st);
 {
 GetNumberofConsoleInputEvents
 if Key = VK_F1 then Form1.Caption := 'F1';
 WM_KEYDOWN
 MapVirtualKeyEx, OemKeyScan, VkKeyScanEx
 }
end;





Похожие по теме исходники

Barcode (штрих-код)

Оптимальное кодирование информации

BarCode39 (штрихкоды)

Код Хаффмана

 

Поиск символа

WiFi Scanner (сканер Wi-Fi сетей)




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте