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

•  Animation Loaders  925

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

•  TDictionary Custom Sort  7 816

•  Fast Watermark Sources  7 490

•  3D Designer  10 725

•  Sik Screen Capture  8 043

•  Patch Maker  8 250

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

•  ListBox Drag & Drop  7 120

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

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

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

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

•  Canvas Drawing  6 713

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

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

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

•  Paint on Shape  3 429

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

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

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

•  Пазл Numbrix  2 820

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

•  Игра HIP  2 541

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

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

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

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

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

•  HEX View  3 002

 
скрыть

  Форум  

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

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