Продолжаем разбираться с 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) частей кода.
Книжная полка
![]() |
Описание Подробно рассматривается библиотека FM, позволяющая создавать полнофункциональное программное обеспечение для операционных систем Windows и OS X, а также для смартфонов и планшетных компьютеров, работающих под управлением Android и iOS
|
![]() |
![]() |
Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
|
![]() |
![]() |
Название: О чем не пишут в книгах по Delphi
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
|
![]() |
![]() |
Описание: Книга рассчитана на подготовленного пользователя ПК, желающего самостоятельно научиться программировать и разрабатывать приложения и базы данных в среде Delphi. Опытные программисты смогут использовать издание как справочник. В тексте подробно описаны более 80 компонентов VCL, функции Object Pascal и Win32 API.
|
![]() |
![]() |
Описание: Описаны общие подходы к программированию приложений MS Office. Даны программные методы реализации функций MS Excel, MS Word, MS Access и MS Outlook в среде Delphi.
|
![]() |







Скорее не шаблоны появились (я ими пользовался еще в Delphi 6), а функция автозавершения (autocomplite) кода.
Спасибо большое за урок
Можете подсказать как в шаблоне скопировать выделеное?
Хочется чтобы выглядело так
{$ifndef no_ado}
|selected| overload; deprecated ‘Use AppData’;
{$endif}
|selected| overload;
//———————————————————————-
вот такой вот шаблон есть. но хочется ешё упростить своою работу
no ado
BVA
no ado
BVA
Как код шаблона вставить?))
?xml version=»1.0″ encoding=»utf-8″ ?>
no ado
BVA
/codetemplate>
вообще ничё не понял :) Чего сделать-то надо? Если исходник XML фигова вставляется, то просто сделай скриншотик и дай ссылочку на картинку
добрый день, помогите разобратся с шаблоном вот таким

выделяю ServiceList юзаю шаблон и такая бяка получается)
А как потом найти и отредактировать средствами IDE?
Автор забыл написать, что Delphi нужно перезагружать после добавления шаблона