Секреты Delphi - полезные и не очень

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика



Пасхальные яйца Delphi

  1. (Проверено на Delphi5 и Delphi6)
    Откройте About box (в меню Help | About...) и нажав Alt наберите слово DEVELOPERS. Вы увидите список сотрудников отдела Borland R&D.
  2. (Проверено на Delphi5, Delphi6, Delphi2006 и DelphiXE)
    Откройте About box (в меню Help | About...) и нажав Alt наберите слово TEAM. Вы увидите список всех сотрудников Borland связанных с проектом Delphi.
    В Delphi2006 вы увидите Borland Rules! и кнопки с текстом "OK, I understand" и "TEAM", нажав на последнюю увидите все тот же список сотрудников.
  3. (Проверено на Delphi5 и Delphi6)
    Откройте About box (в меню Help | About...) и нажав Alt наберите слово QUALITY. Вы увидите список всех сотрудников отдела Quality Assurance работавших над проектом.
  4. (Проверено на Delphi5 и Delphi6)
    Откройте About box (в меню Help | About...) и нажав Alt наберите слово JEDI. Это дань JEDI project (Joint Endeavour of Delphi Innovators). Дополнительно, если это пасхальное яйцо было вызвано, то About box показывает предварительно скрытую ссылку на домашнюю страничку JEDI (http://www.delphi-jedi.org).
  5. (Непроверено, но должно работать в Delphi7)
    Если Вы будите держать нажатыми Ctrl + Shift при старте Delphi7, то Delphi рандомом выберет картинку показывающуюся при загрузке из обычной и альтернативной групповой фотографии "The Delphi team".


Параметры командной строки Delphi

-ns
No splash. Не показывает splash screen при запуске DELPHI.

-hm
Heap Monitor. Отображает в заголовке информацию об использовании памяти.

-hv
Heap Verify. Проверяет распределение памяти используя "memory manager" и отображает сообщения об ошибках в заголовке IDE.

-np
No Project. Не создавать новый проект при каждом запуске Делфи. Полезная функция - загрузка происходит значительно быстрее (т.к. не подключаются различные пакеты).

-attach
Attach to running process. This command-line is used to make Delphi a JIT debugger on Windows 95/98/NT.

-?
Выводится справка по параметрам командной строки.

-filename
Открыть указанный файл в среде Делфи.

-b
Auto build - "собрать" файл, указанный в параметре filename. Достаточно бесполезная функция, т.к. после сборки IDE сразу же закрывается. Для быстрой сборки лучше использовать компилятор командной строки DCC32.EXE.

-m
Auto make - Перекомпилировать проект. (см. предыдущий коментарий).

PS: Более детальная информация - в файле справки Delphi в разделе IDE command-line options.



Сдвиг нескольких строк исходного текста

Для того, чтобы сдвинуть вправо или влево несколько строк исходного текста в Delphi, достаточно выделить эти строки и нажать комбинацию клавиш Ctrl + Shift + I (вправо) или Ctrl + Shift + U (влево). Сдвиг при этом происходит на 2 позиции.



Удаление блока пробелов

Если нужно удалить лишние пробелы в начале нескольких строк, и тем самым сдвинуть текст влево, можно выделить для удаления блок необходимой ширины символов. Блок можно выделить, используя следующие комбинации клавиш Alt + Shift + Left или Alt + Shift + Right или Alt + Shift + Up или Alt + Shift + Down или Alt + Shift + Home или Alt + Shift + End или Alt + Shift + PageUp или Alt + Shift + PageDown или Ctrl + Alt + Shift + Home или Ctrl + Alt + Shift + End или Ctrl + Alt + Shift + PageUp или Ctrl + Alt + Shift + PageDown или Ctrl + Alt + Shift + Left или Ctrl + Alt + Shift + Right. Чтобы выйти из режима выделения блоков и снова иметь возможность выделять текст как обычно, нужно просто щелкнуть левой клавишей мыши где угодно в тексте. Другим способом включить режим вертикального выделения является сочетание клавиш Ctrl + O C, а отключить этот режим можно клавишами Ctrl + O K.



Глюки Code Completion в Delphi

Иногда в Delphi6 при наборе исходного текста в Code Completion происходит очень неприятный затык, который выражается в том, что не работает пробел, возврат каретки и разделители - скобки, запятые и т.п. Обычно происходит это сразу после ввода имени процедуры или функции с помощью Code Completion, когда курсор оказывается внутри автоматически добавленных им скобок. Избавиться очень просто: надо нажать Ctrl + Space, и после того, как выпадет список всевозможных подсказок, в данном случае обычно бесполезный, нажать Esc (ну, или выбрать что-то из списка, если и впрямь что-то оказалось подходящим).



AutoScroll

Для того, чтобы палитра компонетов автоматически прокручиваться при наведении курсора мыши, в реестр необходимо добавить следующие строковые значения

[HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Extras]
"AutoPaletteSelect"="1"
"AutoPaletteScroll"="1"



Отладка приложения

Начиная с версии 5, в Delphi появились новые очень мощные средства для выполнения остановки по всевозможным условиям, что кое-кому облегчило жизнь. Но на самом деле, средство это весьма замедляет работу программы, и как оказывается, начиная с самой первой версии Delphi есть гораздо более эффективное и удобное средство для перехода выполнения программы в режим пошаговой отладки тогда, когда это нам нужно. Достаточно написать:

if <какое-то условие> then
asm
   int 3
end;


или

if <какое-то условие> then
asm
   DB 0CCH
end;


Как только заданное условие (которое может быть сколько угодно сложным) выполнится, выполнение программы приостановится на следующей строке программы.



Перетаскивание текста

Здесь все очень просто, выделите текст, который хотите перенести, нажмите и удерживайте на нем левую кнопку мыши, переносите его куда нужно, после чего отпустите кнопку мыши и все готово.



Функция дополнения класса

Эта функция упрощает добавление процедур и функций к классу, генерируя значительную часть кода самостоятельно. Например, если поместить в класс следующее объявление процедуры: procedure Test; и после этого нажать Ctrl + Shift + C, то описание этой процедуры будет автоматически внесено в раздел реализации данного модуля. А если объявить новое свойство, значение которого считывается из поля, а записывается с помощью метода, то после вызова функции дополнения класса будет автоматически создано определение поля, а также текст описания и реализации метода.



Возможности Code Explorer

Возможности Code Explorer не ограничиваются отображением структуры модуля, с его помощью можно вводить в класс новые переменные, свойства, методы, подключать модули. Раскройте в окне Code Explorer вершину формы, и щелкните правой кнопкой мыши на пункте Public. Выберите из всплывающего меню пункт New. В открывшейся строке напишите procedure Test; и нажмите Enter. Теперь щелкните на нем два раза мышкой, и курсор в редакторе кода переместится на только что сгенерированную строку. Находясь на этой строке нажмите Ctrl + Shift + C, и Delphi завершит описание процедуры. А если щелкнуть правой кнопкой мыши щелкнуть на вершине Uses, выбрать пункт New, и в появившемся поле ввести Registry, то этот модуль будет добавлен в раздел Uses.



Функция навигации AppBrowser

Иногда, глядя на некоторую строку программы, долго пытаешься вспомнить, где именно объявляется используемый в ней метод. Самый простой способ выяснить это, удерживая клавишу Ctrl щелкнуть мышью на интересующей лексеме. Если описание находится в текущем модуле, курсор переместится на строку, в которой объявлена эта лексема, иначе откроется новое окно, и курсор будет послушно установлен на интересующей нас строке. Другой способ добиться этого заключается в том, чтобы установив курсор на интересующей лексеме, нажать Alt + Up.



Перемещение между разделами объявления и реализации

Для перемещение между объявлением и реализацией метода достаточно поместить на его имя курсор и нажать комбинацию клавиш Ctrl + Shift + Up или Ctrl + Shift + Down.



Создание нового GUID

Нажатие комбинаций клавиш Ctrl + Shift + G позволяет поместить в окно редактора кода новое уникальное значение GUID (уникального глобального идентификатора интерфейса). Это может оказаться полезным при создании нового интерфейса.



Изменение регистра выделенного исходного кода

В Delphi существует возможность изменить регистр выделенного исходного кода. Выделенный код можно перевести в верхний и нижний регистр (это можно сравнить с действием функций AnsiUpperCase() и AnsiLowerCase() соответственно). Для перевода выделенного исходного кода в верхний регистр нажмите Ctrl + K N. Для перевода выделенного исходного кода в нижний регистр нажмите Ctrl + K O.



Изменение регистра слова, на котором стоит курсор

Если возникла необходимость изменить регистр отдельного слова, установите на это слово курсор и нажмите Ctrl + K F для приведения слова к верхнему регистру или Ctrl + K E для приведения слова к нижнему регистру.



Удаление строки кода

Если возникла необходимость удалить целую строку кода, то наиболее быстро и удобно это можно сделать следующим образом. Установите курсор на ту строку кода, которую собираетесь удалить и нажмите Ctrl + Y.



Прокрутка окна с кодом

Окно кода можно прокручивать не только используя колесо мыши или вертикальную полосу прокрутки, расположенную справа, но и с помощью клавиатуры. Используйте для этого следующие клавиши Ctrl + Up и Ctrl + Down.



Открытие файла под курсором

Если вам нужно быстро открыть модуль, подключенный к вашему проекту (имя его модуля записано в разделе uses) сделайте одно из следующих действий:
  • Щелкните правой кнопкой мыши на имени интересующего вас модуля, и в появившемся списке выберите "Open File at Cursor".
  • установите курсор на имени этого модуля и нажмите Ctrl + Enter
  • установите курсор на имени этого модуля и нажмите Ctrl + O A


Быстрый переход на нужную строку

Если вам известен номер строки, на которую вам нужно быстро перейти, нажмите Ctrl + O G, введите номер строки о мажмите "OK".



Изменение регистра

Комбинация клавиш Ctrl + O U приведет к тому, что символ, стоящий справа от курсора изменит свой регистр на противоположенный, сам же курсор сместится на одну позицию вправо. А нажатие Ctrl + K E приведёт к переводу текущего слова в нижний регистр, обратное действие выполняется комбинацией Ctrl + K F.



Текущие директивы компилятора

Нажатие комбинации клавиш Ctrl + O O вставит в начало модуля (перед ключевым словом unit) текущие директивы компилятора.



Переход на нижнюю строку экрана

Комбинация клавиш Ctrl + Q X установит курсор на нижней строке кода, видемой в редакторе в текущий момент.



Перемещение текущей строки вверх или вниз

Комбинация клавиш Ctrl + Q T перемещает окно редактора так, чтобы текущая строка была вверху экрана, а Ctrl + Q U перемещает окно редактора так, чтобы текущая строка была внизу экрана (если это возможно).



Отмена действий

В Delphi есть очень полезная возможность, позволяющая отменять совершенные действия. Причем делать это можно "в двух направлениях" - Alt + Backspace или Ctrl + Z сделает откат на одно действие назад, а Alt + Shift + Backspace или Ctrl + Shift + Z на одно действие вперед (например, чтобы отменить действие клавиш Alt + Backspace или Ctrl + T).



Перемещение между закладками в редакторе кода

Если у вас в редакторе кода открыто сразу несколько файлов, то перемещаться между ними вы можете, используя клавиши Ctrl + Tab для перехода на следующую страницу и Ctrl + Shift + Tab для перехода на предидущую.



Перемещение курсора на верхнюю или нижнюю строку

Комбинация клавиш Ctrl + PageUp или Ctrl + Q E переместит курсор на самую верхнюю видимую строку в редакторе кода, а Ctrl + PageDown или Ctrl + Q X на самую нижнюю видимую строку.



Контекстное меню параметров функций

Если ва забыли, какие аргументы необходимы для той или иной процедуры или функции, установите курсор внутри круглых скобок, и нажмине Ctrl + Shift + Space. В появившейся подсказке будут перечислены все аргументы.



Контекстное меню шаблонов кода

Delphi позволяет вставлять готовые шаблоны кода в текст программы. При нажатии комбинации клавиш Ctrl + J появится контекстное меню, из которого вы можите выбрать необходимый шаблон. Сами шаблоны можно редактировать и добавлять в меню Tools > Editor Options... во вкладке Code Insight.



Контекстное меню завершения кода

Если вам необходимо вызкать процедуру, или обратиться к свойству объекта, а вы забыли как оно называется, просто нажмите лавиши Ctrl + Space, и выберите из выпадающего списка то, что вам нужно. Этот же прием можно использовать для завершения написания процедур, функций, констант, переменных и т.д.



Удаление части слова

Комбинация клавиш Ctrl + T удалит часть слова от текущей позиции курсора до конца слова.



Удаление части строки

Комбинация клавиш Ctrl + Shift + Y удалит часть строки от текущей позиции курсора до конца строки.



Подсветка синтаксиса C++

Если в процессе работы в Delphi вы часто просматриваете файлы с программами на языке C++, то вы по достоинству оцените эту встроенную функцию редактора кодов. Просто загрузите файл с текстом программы на C++ в редактор - все остальное будет сделано автоматически.



Сохранение блока текста в файл

Отмеченный блок текста можно сохранить в файл непосредственно, минуя стадии создания файла и т.п. Для этого нужно нажать Ctrl + K W - откроется диалог сохранения файла выберите имя и блок будет сохранён в виде отдельного файла.



Вставка текста из файла

Содержимое текстового файла можно легко вставить в текущий текст, в то место, где расположен курсора. Для этого нужно нажать Ctrl + K R. При нажатии этой комбинации откроется диалог открытия файла.



Переходы по меткам

Текущую позицию курсора можно запомнить, поставив метку, и потом перейти к метке из любого места в редакторе кода. Всего меток 10 - от 0 до 9. Метка ставится нажатием Ctrl + Shift + [0..9] ([0..9] - тоесть цифра от 0 до 9), переход к поставленной метке осуществляется по нажатию Ctrl + [0..9].



Строковые блоки

Редактор может выделять строки целиком, вне зависимости от того, где стоит курсор. Перейти в режим строкового блока можно комбинацией Ctrl + O L.



Вставка символа

После нажатия комбинации Ctrl + P, следующий символ с клавиатуры не будет восприниматься как управляющий, а будет введен в текст. Например, нажмите Ctrl + P, а потом Ctrl + A.



Копирование без буффера обмена

Delphi позволяет копировать выделенный кусок кода без использования буффера обмена. Более того, это можно сделать двумя способами:
  1. Можно выделить блок текста, затем нажать Ctrl + K C. Выделенный текст будет вставлен в то место, гда стоит курсор, содержимое буффера при этом не пострадает. Затем, если нужно, текст можно перетащить мышкой.
  2. Можно перетащить выделенный текст мышкой, удерживая при этом Ctrl. Эффект будет аналогичен описанному выше.


Быстрый поиск

Нажмите Ctrl+E и начинайте печатать слово, которое вы хотите найти - редактор будет искать по мере ввода слова...



Где объявлен идентификатор?

Если кликнуть на идентификаторе с нажатым Ctrl, то курсор перейдёт на объявление этого идентификатора. А если нажать Ctrl + Shift + B на имени класса, то будет выведена вся иерархия данного класса.



Поиск парных скобок

Нажатие клавиш Alt + [ и Alt + ] осуществляют поиск парных скобок, что удобно при сложных выражениях (курсор при этом должен находиться перед открывающей или закрывающей скобкой).



Отключить CodeFolding (сворачивание кода) в Delphi 2005 и выше

Включение/отключение данной возможности осуществляется сочетанием следующих клавиш Ctrl + Shift + K O (то есть, удерживая Ctrl + Shift, нажимаете K, затем O).



Быстрая печать выделенного фрагмента текста

Для быстрой печати нажмите Ctrl + K P.



Быстрое выделение слова под курсором

Для быстрого выделения слова в редакторе кода можно либо дважды по нему кликнуть, либо поставив на него курсор нажать клавиши Ctrl + K T.



Быстрый перевод слова в нижний регистр

Для быстрого перевод слова в нижний регистр нужно, поставив на него курсор, нажать клавиши Ctrl + K E.



Быстрый перевод слова в вверхний регистр

Для быстрого перевод слова в вверхний регистр нужно, поставив на него курсор, нажать клавиши Ctrl + K F.



Автоматическое объявление переменных

Написав в коде переменную, установя на ней текстовый курсор и нажав комбинацию клавиш Ctrl + Shift + F, среда разработки сгенерирует объявление этой переменной, при необходимости добавив ключевое слово var.



Поиск ссылок на методы

Установив текстовый курсор на имени метода (процедуры/функции) и нажав комбинацию клавиш Ctrl + Shift + Enter, среда разработки покажет, где в проекте используется данный метод.