Продолжаем разбираться с IDE Delphi 2010 и сегодня рассмотрим ещё один момент работы - шаблоны кода (templates). Впервые возможность использования собственных шаблонов кода при работе в Delphi была реализована (если я не ошибаюсь) ещё в Borland Delphi 2006. Но, тем не менее, далеко не все и не всегда пользуются этой замечательной возможностью.
Для чего нужны Templates? Основная их задача - автоматизировать процесс написания часто используемых частей кода. Думаю, что большинство тех, кто перешел на новую версию Delphi, скажем, с Delphi 6-7 были приятно удивлены, когда при после написания begin в редакторе и нажатии Enter в редактор автоматически добавился end. Аналогично могут завершаться try..except..end, if..then..else и т.д. Главное настроить шаблоны так как Вам это необходимо.
<
'
'
>
Все шаблоны кода Delphi 2010 представляют собой xml-файлы, которые хранятся в директории (при установке по умолчанию):
c:\Program Files\Embarcadero\RAD Studio\7.0\ObjRepos\en\Code_Templates\Delphi\
Всего в начале Вам доступно 33 шаблона. Чтобы просмотреть все доступные шаблоны кода можно выбрать в меню Delphi "View - Templates"

В редакторе шаблонов можно изменить шаблон, добавить новый, удалить и т.д. Конечно 33 различных шаблона вполне достаточно для работы, но может оказаться так, что и их окажется недостаточно. Например, Вы пишете программу, которая использует какие-либо данные из Интернет. Часто в таких программах присутствуют функции открытия ссылки в браузере по умолчанию. Код выглядит следующим образом:
ShellExecute(Application.Handle, PChar('open'), PChar('www.webdelphi.ru'), PChar(0), nil, SW_NORMAL) ;
По сути единственное, что будет меняться в параметрах - это URL страницы, а остальное - повторяется каждый раз. Если в программе часто используется эта функция, то логично будет создать для неё отдельный шаблон.
Для того чтобы создать новый шаблон выбираем в меню "File - New - Other - Other Files - Code Template":

Откроется новое окно редактора, содержащее "скелет" нового шаблона:

Рассмотрим процесс создания шаблона по пунктам:
1. Заполняем атрибут name - название шаблона. Пусть название будет url.
2. Определяем значение атрибута invoke. invoke определяет то как шаблон будет вставляться в редактор кода и может принимать значения auto, т.е. шаблон вставиться автоматически после нажатия пробела, либо manual - вручную. Во втором случае шаблон будет вставляться после того как в редакторе будет написано название шаблона и нажат кнопка TAB. Также шаблон можно вставлять из списка, открывающегося по нажатию горячих клавиш Ctrl+J. Наш шаблон будет вставляться автоматически, поэтому записываем в invoke значение auto.
3. Заполняем значения тегов Author и Description. Значения тегов - произвольные строки. Например, в description можно записать "Open new URL in browser" и т.д.
4. Теперь необходимо определить части кода, которые будут вставляться в редактор и впоследствии изменяться программистом, т.е. так называемые jump point'ы. В нашем случае для ShellExecute - это строка www.webdelphi.ru. Схема описания jump point следующая:
<point name="url">
<text>
www.webdelphi.ru
</text>
<hint>
URL of the page
</hint>
</point>
name - имя точки, используемое парсером при вставке шаблона
hint - подсказка.
все теги point вставляются после description до раздела code. Если в шаблоне необходимо определить 2 точки, то, соответственно в коде шаблона должны быть определены 2 тега point и т.д.
5. Записываем код шаблона. В начале определяем необходимые значения атрибутов узла code.
language - язык в котом используется шаблон. В нашем случае - это Delphi.
delimiter - разделитель. Разделители используются для того, чтобы парсер мог определить в каком месте вставлять jump point. Обычно, в качестве разделителя ипользуется символ "|".
Код Delphi, который будет вставляться в редактор записывается в секции CDATA узла code. После того как определены атрибуты у узла code и записан код шаблона у Вас должно получиться примерно следующее:
<code language="Delphi" delimiter="|">
<![CDATA[ShellExecute(Application.Handle,
PChar('open'),
PChar('|url|'),
PChar(0),
nil,
SW_NORMAL) ;
]]>
</code>
Как видите, название jump point обрамлено двумя delimiter'ами.
6. Сохраняем шаблон с названием url.
Теперь можете открыть редактор кода какого-нибудь своего приложения, набрать url и нажать пробел. Вместо url должен вставиться наш только что созданный шаблон.
В приведенном выше примере мы использовали простой шаблон, автоматизирующий вставку метода ShellExecute. Также можно создавать более сложные шаблоны, которые могут использоваться, например, для обрамления (surround) частей кода. Чтобы понять как пишутся такие шаблоны можно посмотреть, например, исходник шаблона function.
Кстати, готовый шаблон для вставки ShellExecute Вы можете скачать здесь:
Шаблон URL(449 bytes)
Мини-обзор софта
Помню года 3-4 назад гуляла по рукам довольно интересная консольная программа под названием Tiramisu, которая проводила восстановление данных с жесткого диска после его форматирования. Программа, конечно хорошая, но всё-таки консольное приложение в век Windows 7 - это уже не то :). Да и технологии уже давным давно шагнули вперед - появились объемные флэшки и т.д. Поэтому, представляю Вашему вниманию современную программу для восстановление информации после форматирования Hetman Uneraser, которая позволяет восстанавливать данные не только с жесткого диска, но и с флэшек, а также отображает содержание удаленных файлов.
--------------------
| Делись! | Загружай! | Плюсуй! |
| | |









10 Янв 2011 в 2:45 дп
Скорее не шаблоны появились (я ими пользовался еще в Delphi 6), а функция автозавершения (autocomplite) кода.
28 Фев 2011 в 10:00 пп
Спасибо большое за урок