Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги при пропасниці, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?
Не секрет, що сучасна мова програмування Делфі була заснована на більш поширеному Pascal і деякий час не мала самостійності. Тим не менш, зараз Delphi є повноцінною мовою програмування, що розвивається, тоді як раніше він був всього лише похідною Pascal, створеним для позначення діалекту цієї мови.
Delphi, оснащений своїм середовищем програмування, має все необхідні умовиі відмінні рисисамостійної мови, у тому числі й персональні вихідні коди. До речі, Delphi коди розміщені та публічно доступні на сторінці розробників, які супроводжуються необхідними коментарями щодо можливості зміни вихідних кодів та створення власних програм за допомогою Delphi.
Вихідний код Delphi можна розділити на модулі та файли проекту. Ці елементи підпорядковані однаковим угодам. Файли проекту Delphi мають розширення DPR. Такі файли розроблені як основні вихідні файли всім проектів. Усі модулі, які можуть використовуватись у проекті, завжди мають розширення PAS. Також у проектах можуть використовуватися і додаткові файли (наприклад, командні, html, DLL тощо). Такі файли дуже важливі, але до нашої теми мають зовсім мале відношення.
Для того, щоб оперуватися вихідними файлами, над ними, без сумніву, необхідно робити якісь важливі дії. До таких дій можна зарахувати завдання імені або перейменування. Для мови Delphi передбачена велика довжина імені файлу, що робить роботу значно зручнішою. Якщо у назві файлу використовується кілька слів, для написання першої літери кожного слова слід використовувати заголовні букви. Такий спосіб іменування файлів називається InfixCapsабо по-іншому: CamelCaps.
Щоб організувати вихідні файли, потрібно знати, які елементи можуть міститися в модулях. Список таких елементів у необхідному порядку представлений нижче:
- Інформація про права (Copyright/ID);
- Ім'я модуля (Unit Name);
- Оголошення файлів, що включаються (Include files);
- секцію інтерфейсу (Interface section);
- Додаткові визначення (Additional defines);
- Реалізацію (Implementation)
- Оголошення використовуваних модулів (Uses clause);
- Оператор, що закриває, і точку (A closing end and a period).
Елементи додаткового характеру можна структурувати за бажанням користувача. Однак, навіть у цьому випадку існує необхідність дотримання деяких умов щодо порядку написання копірайту, імені модуля, умовних директив та визначень, директив компілятора та файлів увімкнення, визначення підключення. Саме такому порядку повинні розташовуватися перелічені вище елементи.
Серед наших користувачів дуже багато програмістів-початківців. Кожен із програмістів знає, що програмувати, та й не тільки, швидше не використовуючи мишу, а працюючи виключно з клавіатурою комп'ютера. Спеціально для тих, хто робить перші кроки в середовищі прогамування Delphi, ми створили пораду: Довідник гарячих клавіш Делфі.
Комбінації клавіш в Delphi - гарячі клавіші серед програмування Delphi
Довідник гарячих клавіш ми представили у вигляді таблиць, які наведені нижче та розділені за типами. Це звичайно ж не всі клавіші та можливості, але все рівно вони допоможуть початківцям.
Клавіші редактора коду в Delphi
Клавіша | Призначення клавіш | Версія Delphi |
Ctrl+J | Вибір code-template. Вставте шаблон коду. Можна вставляти типові шаблони, а можна написати власні. При натисканні Ctrl + J буде показано список шаблонів. Або можна набрати кілька літер з імені шаблону, щоб обмежити вибір, або повне ім'яшаблон і натиснути комбінацію - шаблон відразу вставиться. Наприклад, набираємо try і тиснемо. Нам запропонують варіанти конструкції try. Або набираємо classc, тиснемо – отримуємо готову заготівлю для опису класу. |
5 |
Ctrl+Shift+C | Class Completion. Одна з найважливіших комбінаційв описі класу. Закінчивши базовий опискласу натискаємо комбінацію. Автоматично створяться всі описані методи у розділі implementation, для всіх property створяться приватні поля та сеттери. | 5 |
Ctrl+Shift+V | Автоматичне оголошення змінної. При написанні функції можна написати код, не прописуючи заздалегідь змінні var. Потім встановити курсор змінну і натиснути цю комбінацію. Автоматично буде створено розділ var (за потреби), і в ньому буде розміщено опис змінної. У разі, коли за кодом не можна точно визначити тип змінної, буде викликане вікно, що уточнює. Втім, воно рідко помиляється з типом і я зазвичай відразу підтверджую по Enter. | 2006 |
Ctrl + пробіл | Виклик CodeCompletion (того, що автоматично з'являється після натискання точки після імені об'єкта/класу). При натисканні на порожньому місці показує об'єкти/класу/функції/процедури/методи тощо, які ми можемо використовувати в цьому місці. При натисканні оголошення класу, показує методи, які можна успадкувати від батьківського класу. |
5 |
Ctrl + Shift + пробіл | Показує спливаючий хінт, що нагадує параметри функції. | 5 |
Ctrl+Shift+Enter | Якщо стати на ім'я функції та натиснути комбінацію, то будуть знайдені всі місця у проекті, де вона використовується. | 2005 |
Ctrl+Shift+G | Вставити GUID | |
Ctrl+Shift+T | Вставляє нотатку ToDo в поточну позицію. Всі розставлені нотатки можна потім дивитися через ToDo-List і здійснювати навігацію по них. Для тих, хто не в курсі - ToDo означає "Потрібно зробити". Тобто розставляємо собі нотатки, що тут потрібно зробити чи доопрацювати. |
5 |
Ctrl+Shift+A | Додає до uses потрібний модуль. Наприклад, у Вас є код, але дельфі лається, що вона не знає, що це за функція або константа і т.п. Просто ставимо на неї курсор і тиснемо комбінацію. Дельфі сама знайде модуль, де вона оголошена і додасть його в uses | 2005 |
Ctrl+O+O | Вставити код директиви компілятора, відповідні поточним налаштуваннямпроекту | 5 |
Клавіші редагування в Delphi
Клавіша | Призначення | Версія Delphi |
Ctrl+T | Видалити слово в позиції курсору | 5 |
Ctrl+Y | Видалити поточний рядок | 5 |
Ctrl+Shift+Y | Видалити текст від позиції курсору до кінця рядка | 5 |
Ctrl+N | Вставити рядок | 5 |
Ctrl+Shift+I | Збільшити відступ вибраного тексту від лівого краю | 5 |
Ctrl+Shift+U | Зменшити відступ вибраного тексту | 5 |
Ctrl + / | Закоментувати чи розкоментувати виділений блок тексту | 2005 |
Ctrl+Shift+R | Почати/завершити запис макросу | 1 |
Ctrl+Shift+P | Відтворити макрос | 1 |
Ctrl+K+E | Перевести слово в нижній регістр | 5 |
Ctrl+K+F | Перевести слово у верхній регістр | 5 |
Shift + Навігація | Виділити частину коду (Shift + миша, вгору, вліво, Home і т.д) | 1 |
Shift+Alt+Навігація | Аналогічно попередньої, але виділяє прямокутну частину коду. | 1 |
Ctrl+O+C | Увімкнути режим блокового виділення | 1 |
Ctrl+O+K | Увімкнути режим поточного виділення | 1 |
Ctrl+Del | Видалити виділене | 1 |
Ctrl+BackSpace | Стерегти слово перед курсором | 1 |
Клавіші навігації за кодом у Delphi
Клавіша | Призначення клавіш | Версія Delphi |
Ctrl+F | Пошук | 3 |
F3 | Продовження пошуку | 3 |
Ctrl+E | Інкрементний пошук. Пошук без діалогу – натискаєте комбінацію та починаєте набирати текст. Навігація сама побіжить за кодом у пошуках слова. Якщо слово знайдено, але потрібно знайти в іншому місці – також працює F3. | 5 |
Alt + [ | Шукає дужку, що відкриває для закриває дужки, перед якою стоїть курсор | 5 |
Alt + ] | Шукає дужку, що закриває, для дужки, що відкриває, перед якою стоїть курсор | 5 |
Alt + Ліворуч | Назад з історії переміщень. Повертає на те місце коду, звідки ми перейшли. | 7 |
Alt + Вправо | Вперед з історії переміщень. Результат обернений попередньої комбінації. Діє лише після її використання. | 7 |
Alt + Вгору | Виконує дію, аналогічну до утримання Ctrl + клік мишкою за словом - відбувається перехід на його декларацію. Наприклад, встановивши курсор слово TLabel і натиснувши комбінацію, ми потрапимо туди, де описаний клас TLabel. Цей перехід міститься в історію переміщень. Повернутися назад можна за Alt + Ліворуч. | 7 |
Ctrl+Shift+Вгору | Перехід між описом процедури/функції/методу та його/її реалізацією | 5 |
Ctrl+Shift+Вниз | Аналогічно попередньою | 5 |
Ctrl+Alt+Верх | Перехід до реалізації попереднього методу класу (за абеткою). Тобто, переглядаючи код методу, ми можемо перейти до реалізації попереднього (за алфавітом) методу цього ж класу | 2006 |
Ctrl+Alt+Вниз | Перехід до реалізації наступного методу класу (за абеткою). | 2006 |
Ctrl+Alt+Home | Перехід до реалізації першого методу класу (за абеткою) | 2006 |
Ctrl+Alt+End | Перехід до реалізації останнього методу класу (за абеткою) | 2006 |
Ctrl+F12 | Відкриває вікно із списком юнітів проекту. | 1 |
Shift+F12 | Відкриває вікно зі списком форм | 1 |
Ctrl+Tab | Перехід до наступного відкритого юніту в порядку їх прямування на закладках | 1 |
Ctrl+Shift+Tab | Перехід до попереднього відкритого юніта в порядку їх прямування на закладках | 1 |
Ctrl+Alt+F12 | Меню зі списком відкритих юнітів | 2006 |
Ctrl+F4 | Закрити поточний юніт | 1 |
Alt+G | Перейти до рядка з номером... | 1 |
Ctrl+Вгору | Скролить екран на рядок вгору | 1 |
Ctrl+Вниз | Скролить екран на рядок вниз | 1 |
CodeFolding | Нижче клавіші, що стосуються згортання коду Delphi 2005 і вище | 2005 |
Ctrl+Shift K+A | Розгорнути все | 2005 |
Ctrl+Shift K+E | Згорнути блок коду | 2005 |
Ctrl+Shift K+U | Розгорнути блок коду | 2005 |
Ctrl+Shift K+T | Перемикання стану згорнутий/розгорнутий | 2005 |
Ctrl+Shift K+O | Вимкнути CodeFolding | 2005 |
Клавіші загальної навігацій Delphi
Клавіша | Призначення | Версія Delphi |
F12 | Перемикання між вікном коду та візуальним редактором форми | 3 |
Alt + F12 | Перемикання на перегляд форми у текстовому вигляді (dfm) та назад | 3 |
F11 | Перейти на Object Inspector | 3 |
Ctrl+Alt+F11 | Відкрити менеджер проектів | 5 |
Shift+Alt+F11 | Відкрити вікно структури | 2005 |
Ctrl+Alt+P | Перейти на панель інструментів | 2005 |
Ctrl+Shift+B | Відкриває на вікно експлорера проекту | 5 |
Ctrl+Alt+V | Відкрити вікно лога подій | 5 |
Ctrl+Shift+F | Знайти у файлах. Здійснює пошук вираження у файлах проекту, у каталозі тощо. на вибір. | 5 |
Alt + F7 | Перехід до попереднього знайденого за допомогою Ctrl+Shift+F | 5 |
Alt + F8 | Перехід до наступного знайденого за допомогою Ctrl+Shift+F | 5 |
Ctrl+Enter | При натисканні на юніті зі списку uses відкриває його на новій закладці. При натисканні в іншому місці відбувається виклик команди Open головного меню. | 5 |
Alt + F11 | Якщо відкритий юніт, ця комбінація покаже діалог додавання юніту, де можна буде вибрати, до яких модулів його додати | 5 |
Клавіші налагодження у Delphi
Клавіша | Призначення клавіші | Версія Delphi |
F9 | Запуск програми. (Несподівано, правда? :)) Також продовжує виконання програми після зупинки на брекпоінтах або після виникнення винятків. | 1 |
Ctrl+F9 | Компіляція програми без запуску | 1 |
Shift+F9 | Білд проекту. Білд відрізняється від компіляції тим, що робить перекомпіляцію всіх модулів проекту. Звичайна компіляція компілює лише змінені модулі. Також білд збільшує номер білда у версії програми, якщо в налаштуваннях зазначено цю опцію. | 5 |
Ctrl+Shift+F9 | Запуск програми з відключеним налагоджувачем. Аналогічно простому запуску exe файлу. Функції налагодження вимкнено. Використовується, якщо ви хочете прогнати програму в робочому режимі, не зупиняючись на брекпоінтах та оброблених винятках. | 2005 |
F5 | Встановити брекпоінт (точку зупинки). Програма, дійшовши до цієї точки, зупинить виконання для подальших інструкцій | 1 |
F4 | Запустити програму та призупинити виконання у заданій точці | 1 |
F8 | Виконати наступний крок програми без заходу до функцій/процедур. | 1 |
F7 | Виконати наступний крок програми із заходом у функцію/процедуру | 1 |
Shift+F7 | Трасування до наступного рядка, що виконується | 5 |
Shift+F8 | Виконати до повернення з функції/процедури. Програма виконає всі дії та знову зупиниться після повернення з неї. | 5 |
Ctrl+F2 | Перервати виконання програми | 5 |
Ctrl+F7 | Виконати власний код дельфі під час налагодження. У коді можна модифікувати будь-які змінні доступні в цьому місці коду. | 2005 |
Ctrl+F5 | Якщо курсор встановлений на змінній, вона буде додана в Watch List | 5 |
Ctrl+Alt+W | Показує Watch List. Призначений для відображення поточних значень змінних та їх модифікації. | 5 |
Ctrl+Shift+B | Показати список усіх розставлених у проекті брекпоінтів з можливістю навігації по них | 5 |
Ctrl+Alt+S | Показує стек виклику, який показує, звідки ми сюди прийшли | 5 |
Ctrl+Alt+L | Відкриває вікно локальних змінних. У ньому відображаються значення всіх локальних змінних функційпід час налагодження | 5 |
Ctrl+Alt+T | Відкриває вікно тредів. Під час налагодження в ньому перераховані всі треди програми та їх стан | 5 |
Ctrl+Alt+C | Відкриє вікно CPU. У цьому вікні можна дивитися та налагоджувати код в асемблерному поданні. По суті, вбудований asm відладчик. Причому, використовуючи F7, можна зайти навіть у код API функцій і подивитися, що там і куди йде. | 5 |
Починаючи з самого світанку комп'ютерної промисловості, клавіатура була первинним пристроєм введення інформації, і найімовірніше збереже свою позицію ще тривалий час.
Події клавіатури поряд з подіями миші є основними елементами взаємодії користувача з програмою. У цій статті піде мова про три події, які дозволяють відловлювати натискання клавіш у програмі Delphi: OnKeyDown,
OnKeyUpі OnKeyPress.
Для отримання введення з клавіатури програми Delphi можуть використовувати два методи. Найпростіший спосіб, це скористатися одним із компонентів, що автоматично реагує на натискання клавіш, таким як Edit. Другий спосіб полягає у створенні процедур у формі, які будуть обробляти натискання та відпускання клавіш. Ці обробники можуть обробляти як натискання одиночних клавіш, і комбінацій. Отже, ось ці події:
OnKeyDown- Викликається, коли на клавіатурі натискається будь-яка клавіша. OnKeyUp- Викликається, коли будь-яка клавіша на клавіатурі відпускається. OnKeyPress- Викликається, коли натискається клавіша, що відповідає за певний символ ASCII.
Тепер саме час подивитися, як виглядають у програмі заголовки обробників:
procedure TForm1.FormKeyDown (Sender: TObject; var procedure TForm1.FormKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); ... procedure var Key: Char); |
Усі події мають один загальний параметр, зазвичай званий Key. Цей параметр використовується для передачі натиснутої клавіші. Параметр Shift(у процедурах OnKeyDown і OnKeyUp), вказує на те, чи була натиснута клавіша в поєднанні з Shift, Alt, і Ctrl.
Фокус
Фокус, це здатність отримувати введення користувача через мишу або клавіатуру. Отримувати події від клавіатури можуть лише об'єкти, які мають фокус. На формі активної програми одночасно може бути активним (мати фокус) лише один компонент.
Деякі компоненти, такі як TImage, TPaintBox, TPanel і TLabel не можуть отримувати фокус, іншими словами це компоненти, успадковані від TGraphicControl. Також не можуть отримувати фокус невидимі компоненти, такі як TTimer.
OnKeyDown, OnKeyUp
Події OnKeyDown та OnKeyUp забезпечують найнижчий рівень відповіді клавіатури. Обробники OnKeyDown та OnKeyUp можуть реагувати на все клавіші клавіатури, включаючи функціональні та комбінації з клавішами Shift, Alt, та Ctrl.
Події клавіатури – не взаємовиключні. Коли користувач натискає клавішу, генеруються дві події OnKeyDown і OnKeyPress, а коли відпускає, то тільки одне: OnKeyUp. Якщо користувач натисне одну з клавіш, яку OnKeyPress не зможе визначити, буде згенеровано тільки одну подію OnKeyDown, а при відпусканні OnKeyUp.
OnKeyPress
OnKeyPress повертає різні значення ASCII для "g" та "G,". Однак, OnKeyDown і OnKeyUp не відрізняються між верхнім і нижнім регістром.
Параметри Key та Shift
Можна змінити параметр Key, щоб програма отримала інший код натиснутої клавіші. Таким чином, можна обмежити набір різних символів, які користувач може ввести з клавіатури. Наприклад, дозволити вводити тільки цифри. Для цього додайте в обробник події OnKeyPress наступний код та встановіть KeyPreview у True (див. нижче).
if Key in["a".."z"] + ["A".."Z"] then Key:=#0 |
Цей вираз перевіряє, чи містить параметр Key символи нижнього регістру ("a".."z") та символи верхнього регістру("A".."Z"). Якщо так, то параметр заноситься значення нуля, щоб запобігти введення в компонент Edit (наприклад).
У Windows визначено спеціальні константи кожної клавіші. Наприклад, VK_RIGHT відповідає коду клавіші для правої стрілки.
Щоб отримати стан спеціальних клавіш, таких як TAB або PageUp можна скористатися API функцією GetKeyState. Клавіші стану можуть бути в трьох станах: відпущена, натиснута, і включена. Якщо старший біт дорівнює 1, то кнопка натиснута, інакше відпущена. Для перевірки цього біта можна скористатися API функцією HiWord. Якщо молодший біт дорівнює 1, клавіша включена. Ось приклад отримання зі спеціальної клавіші:
if HiWord(GetKeyState(vk_PageUp))<> 0 then ShowMessage("PageUp - DOWN") else ShowMessage("PageUp - UP"); |
У подіях OnKeyDown та OnKeyUp, Key є беззнаковим двобайтовим (Word) значенням, яке представляє віртуальну клавішу Windows. Для отримання значення символу можна скористатися функцією Chr. У події OnKeyPress параметр Key є значенням Char, яке представляє символ ASCII.
Події OnKeyDown та OnKeyUp мають параметр Shift із типом TShiftState. У Delphi тип TShiftState визначений як набір прапорів, що визначають стан Alt, Ctrl і Shift при натисканні клавіші.
Наприклад, наступний код (з обробника OnKeyUp) з'єднує рядок "Ctrl +" з натиснутою клавішею та відображає результат у заголовку форми:
Переадресація подій клавіатури у форму
Клавіатурний обробник може працювати на двох рівнях: на рівні компонентів та на рівні форми. Властивість форми KeyPreviewвизначає, чи клавіатурні події форми викликатимуться перед клавіатурними подіями компонентів, оскільки форма може отримувати всі натискання клавіш, призначені для компонента фокус, що має в даний момент.
Щоб перехопити натискання клавіш на рівні форми, перш ніж вони будуть передані компонентам на формі, необхідно встановити властивість KeyPreview у True. Після цього компонент як і раніше отримуватиме події, проте спочатку вони потраплятимуть у форму, щоб дати можливість програмі дозволити чи заборонити введення різних символів.
Припустимо, у Вас на формі є кілька компонентів Edit і процедура Form.OnKeyPress виглядає так:
procedure TForm1.FormKeyPress (Sender: TObject; var Key: Char); begin if Key in ["0".."9"] then Key:= #0 end; |
Якщо один із компонентів Edit має фокус і властивість KeyPreview встановлено в False, то цей код не буде виконаний - тобто, якщо користувач натисне клавішу "5", то в компоненті Edit, що має фокус, з'явиться символ "5".
Однак, якщо KeyPreview встановлено в True, подія форми OnKeyPress буде виконана до того, як компонент Edit побачить натиснуту клавішу. Тому, якщо користувач натисне клавішу "5", то в Key буде підставлено нульове значення, запобігаючи цим попаданню числових символів в Edit.
ДОДАТОК: Таблиця кодів віртуальних клавіш.
Symbolic constant name |
Value (hexadecimal) |
Keyboard (or mouse) equivalent |
---|---|---|
VK_LBUTTON | 01 | Left mouse button |
VK_RBUTTON | 02 | Right mouse button |
VK_CANCEL | 03 | Control-break processing |
VK_MBUTTON | 04 | Middle mouse button (three-button mouse) |
VK_BACK | 08 | BACKSPACE key |
VK_TAB | 09 | TAB key |
VK_CLEAR | 0C | CLEAR key |
VK_RETURN | 0D | ENTER key |
VK_SHIFT | 10 | SHIFT key |
VK_CONTROL | 11 | CTRL key |
VK_MENU | 12 | ALT key |
VK_PAUSE | 13 | PAUSE key |
VK_CAPITAL | 14 | CAPS LOCK key |
VK_ESCAPE | 1B | ESC key |
VK_SPACE | 20 | SPACEBAR |
VK_PRIOR | 21 | PAGE UP key |
VK_NEXT | 22 | PAGE DOWN key |
VK_END | 23 | END key |
VK_HOME | 24 | HOME key |
VK_LEFT | 25 | LEFT ARROW key |
VK_UP | 26 | UP ARROW key |
VK_RIGHT | 27 | RIGHT ARROW key |
VK_DOWN | 28 | DOWN ARROW key |
VK_SELECT | 29 | SELECT key |
VK_PRINT | 2A | PRINT key |
VK_EXECUTE | 2B | EXECUTE key |
VK_SNAPSHOT | 2C | PRINT SCREEN key |
VK_INSERT | 2D | INS key |
VK_DELETE | 2E | DEL key |
VK_HELP | 2F | HELP key |
30 | 0 key | |
31 | 1 key | |
32 | 2 key | |
33 | 3 key | |
34 | 4 key | |
35 | 5 key | |
36 | 6 key | |
37 | 7 key | |
38 | 8 key | |
39 | 9 key | |
41 | A key | |
42 | B key | |
43 | C key | |
44 | D key | |
45 | E key | |
46 | F key | |
47 | G key | |
48 | H key | |
49 | I key | |
4A | J key | |
4B | K key | |
4C | L key | |
4D | M key | |
4E | N key | |
4F | O key | |
50 | P key | |
51 | Q key | |
52 | R key | |
53 | S key | |
54 | T key | |
55 | U key | |
56 | V key | |
57 | W key | |
58 | X key | |
59 | Y key | |
5A | Z key | |
VK_NUMPAD0 | 60 | Numeric keypad 0 key |
VK_NUMPAD1 | 61 | Numeric keypad 1 key |
VK_NUMPAD2 | 62 | Numeric keypad 2 key |
VK_NUMPAD3 | 63 | Numeric keypad 3 key |
VK_NUMPAD4 | 64 | Numeric keypad 4 key |
VK_NUMPAD5 | 65 | Numeric keypad 5 key |
VK_NUMPAD6 | 66 | Numeric keypad 6 key |
VK_NUMPAD7 | 67 | Numeric keypad 7 key |
VK_NUMPAD8 | 68 | Numeric keypad 8 key |
VK_NUMPAD9 | 69 | Numeric keypad 9 key |
VK_SEPARATOR | 6C | Separator key |
VK_SUBTRACT | 6D | Subtract key |
VK_DECIMAL | 6E | Decimal key |
VK_DIVIDE | 6F | Divide key |
VK_F1 | 70 | F1 key |
VK_F2 | 71 | F2 key |
VK_F3 | 72 | F3 key |
VK_F4 | 73 | F4 key |
VK_F5 | 74 | F5 key |
VK_F6 | 75 | F6 key |
VK_F7 | 76 | F7 key |
VK_F8 | 77 | F8 key |
VK_F9 | 78 | F9 key |
VK_F10 | 79 | F10 key |
VK_F11 | 7A | F11 key |
VK_F12 | 7B | F12 key |
VK_F13 | 7C | F13 key |
VK_F14 | 7D | F14 key |
VK_F15 | 7E | F15 key |
VK_F16 | 7F | F16 key |
VK_F17 | 80H | F17 key |
VK_F18 | 81H | F18 key |
VK_F19 | 82H | F19 key |
VK_F20 | 83H | F20 key |
VK_F21 | 84H | F21 key |
VK_F22 | 85H | F22 key |
VK_F23 | 86H | F23 key |
VK_F24 | 87H | F24 key |
VK_NUMLOCK | 90 | NUM LOCK key |
VK_SCROLL | 91 | SCROLL LOCK key |
VK_LSHIFT | A0 | Left SHIFT key |
VK_RSHIFT | A1 | Right SHIFT key |
VK_LCONTROL | A2 | Left CONTROL key |
VK_RCONTROL | A3 | Right CONTROL key |
VK_LMENU | A4 | Left MENU key |
VK_RMENU | A5 | Right MENU key |
VK_PLAY | FA | Play key |
VK_ZOOM | FB | Zoom key |