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

•  DeLiKaTeS Tetris (Тетрис)  4 308

•  TDictionary Custom Sort  6 355

•  Fast Watermark Sources  6 144

•  3D Designer  9 086

•  Sik Screen Capture  6 469

•  Patch Maker  6 887

•  Айболит (remote control)  6 863

•  ListBox Drag & Drop  5 741

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

•  Графические эффекты  7 084

•  Рисование по маске  6 389

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

•  Canvas Drawing  5 628

•  Рисование Луны  5 329

•  Поворот изображения  4 881

•  Рисование стержней  3 461

•  Paint on Shape  2 721

•  Генератор кроссвордов  3 598

•  Головоломка Paletto  2 890

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

•  Пазл Numbrix  2 431

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

•  Игра HIP  2 071

•  Игра Go (Го)  1 999

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

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

•  Генератор лабиринта  2 517

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

•  HEX View  2 532

•  Физический маятник  2 147

 
скрыть

  Форум  

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-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

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