Комбінації клавіш у Delphi - гарячі клавіші

Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги при пропасниці, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?

Не секрет, що сучасна мова програмування Делфі була заснована на більш поширеному 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
Підтримайте проект - поділіться посиланням, дякую!
Читайте також
Як встановити безкоштовний антивірус аваст Як встановити безкоштовний антивірус аваст Як очистити комп'ютер від вірусів самостійно Як очистити комп'ютер від вірусів самостійно Як повністю очистити комп'ютер від вірусів Як повністю очистити комп'ютер від вірусів