Используем макросы в IDE-редакторе Delphi
Занимаясь отладкой процедур, связанных с обработкой сообщений, постоянно приходится делать сопоставление между кодом сообщения и его строковым наименованием. Ну, к примеру, «прилетает» код 6 — это WM_ACTIVATE. Или сложнее: код 274 (0x0112) = WM_SYSCOMMAND.
Мне это порядком надоело — решил сделать Helper для TMessage (попутно и для TMsg). Ну и в планах попробовать сделать Debugger Visualizer.
Однако о самом хелпере я постараюсь написать в следующий раз. В этой заметке хочу описать, как можно использовать кнопочки Record Macro и Playback Macro, которые находятся в левом нижнем углу строки состояния редактора кода.
Итак, я хочу получить код вида:
case Msg of WM_NULL: Result := 'WM_NULL'; WM_CREATE: Result := 'WM_CREATE'; ... WM_APP: Result := 'WM_APP'; end;
Идём в модуль Messages и копируем оттуда код:
{$EXTERNALSYM WM_NULL} WM_NULL = $0000; {$EXTERNALSYM WM_CREATE} WM_CREATE = $0001; ... {$EXTERNALSYM WM_APP} WM_APP = $8000;
Вставляем в новый модуль и начинаем макрос. По шагам:
- Нажимаю Ctrl+F (Панель поиска), указываю пробел, снимаю все флажки. Enter — чтобы запомнилось.
- Устанавливаю курсор на первой строке, нажимаю «Record Macro»:.
- Ctrl+Y — удаляем строку
- Ctrl+Вправо — курсор к началу идентификатора
- F3 — поиск до пробела
- Влево — курсор к концу идентификатора
- Ctrl+Shift+Влево — выделили идентификатор
- Ctrl+C — скопировали выделенное в буфер обмена
- Повторяем 5. и 6. — курсор к концу идентификатора
- Shift+End — выделение до конца строки
- Delete — удаляем выделенное
- Набираем на клавиатуре
: Result := ‘ - Ctrl+V — вставили скопированное
- Набираем на клавиатуре
‘; - Home — переход к началу строки
- Вниз — переход к следующей строке
- Нажимаю «Stop Recording Macro»:.