Продолжу описание новых возможностей среды и языка Delphi, начатое мной пару дней назад. Сегодня речь пойдет о Live Templates. В русскоязычной литературе их называют «шаблоны кода», что несколько неточно (на мой взгляд) отражает их сущность, более к ним подошел бы дословный перевод – «живые шаблоны». Но оно несколько режет слух, поэтому я всегда буду упоминать их англоязычное название. В этой заметке я расскажу о существующих шаблонах и как ими пользоваться, а темой одной из следующих заметок будет создание собственных шаблонов. Итак, Live Templates – это своего рода макросы, позволяющие при вводе ключевой комбинации символов подставлять шаблоны кода. Причем эти шаблоны параметризованы, т.е. вы можете перемещаться по частям шаблона при помощи клавиш Tab и Shift+Tab. Например, вводим в редакторе кода слово for нажимаем клавишу Tab в редакторе кода появляется следующий текст: Причем, после того как будут заполнены все параметры в раздел описания локальных переменных автоматически добавится переменная счетчик цикла: Для цикла FOR есть и другое ключевое слово – forb, его действие аналогично, но результат несколько другой – в шаблоне присутствует еще и блок begin … end; Кстати, раз уж речь зашла о блоках кода следует упомянуть об еще одном улучшении – это автозавершение блоков кода (Block Completion). Если буквально в двух словах – это подстановка логически необходимого ключевого слова в блоке кода, т.е. когда вы набираете в редакторе begin нажимаете Enter, то редактор сам подставляет блок end; и устанавливает курсор между этими словами со сдвигом на 2 позиции курсора. Это же касается и других блоков кода, таких как case, type, try и многих других Но вернемся к Live Templates. В контекстном меню редактора кода появился новый пункт меню – Surround, с помощью которого можно обернуть шаблоном любой выделенный фрагмент кода. Очень удобно когда необходимо некоторую часть кода поместить в блок try … finally;. В том же пункте можно посмотреть весь список встроенных в среду шаблонов кода. Ну и напоследок расскажу о самом моем любимом шаблоне. Это шаблон var. Достаточно написать в любом месте тела процедуры слово var и нажать Tab, сработает шаблон, с помощью которого можно добавить любую новую переменную в раздел описания локальных переменных. Очень удобно в случае с большими процедурами.
суббота, 19 июля 2008 г.
Увеличиваем скорость написания кода
пятница, 18 июля 2008 г.
Extended FAT
Сегодня речь пойдет о новой файловой системе появившейся в Windows Vista Service Pack 1. Также в конце статьи будет немного интересной (на мой взгляд) информации, о том, как подружить Windows XP SP2 с новой файловой системой. Итак, вчера совершенно случайно, как это обычно бывает, обнаружил у себя возможность форматирования в новую файловую систему – exFAT. Стало жутко интересно – что же это за зверь такой – полез в Википедию: Материал из Википедии — свободной энциклопедии exFAT (от англ. Extended FAT — «расширенная FAT») — файловая система для флеш-дисков впервые представленная в Windows Embedded CE 6.0. Используется в качестве замены FAT в тех случаях, когда использование файловой системы NTFS нецелесообразно. Основными преимуществами перед всеми текущими версиями FAT является: Windows Vista Service Pack 1 имеет поддержку exFAT. Интересно, наконец-то появилась более-менее нормальная файловая система для сменных носителей, а то как-то несолидно смотрелись ограничения на файлы в 2 ГБ на «флешках» размером 16 ГБ или внешних жестких в 320 ГБ. Попробовал отформатировать – как ни странно, работает :) Ну а теперь переходим к самому интересному. Затем я попробовал перенести «флешку» на второй компьютер с Windows XP и естественно получил сообщение, что диск не отформатирован. Обидно. Стал экспериментировать. В итоге ночных экспериментов выяснилось, что драйверы от висты отлично работают и под ХР! Чтобы заставить ХР понимать новую файловую систему необходимо: --------------Начало файла instal.reg --------------------- Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\exfat] "Description"="exFAT File System Driver" "DisplayName"="exFAT File System Driver" "ErrorControl"=dword:00000001 "Group"="Boot File System" "Start"=dword:00000002 "Type"=dword:00000002 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System\exfat] "EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\ 00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\ 5c,00,49,00,6f,00,4c,00,6f,00,67,00,4d,00,73,00,67,00,2e,00,64,00,6c,00,6c,\ 00,00,00 "TypesSupported"=dword:00000007 --------------конец файла instal.reg --------------------- Теперь компьютер с XP не отказывался прочитать «флешку» :) Однако форматировать в эту файловую систему под ХР не получится. P.S. Ну и т.к. Windows XP официально не поддерживает эту файловую систему, если вы решите повторять то что написано выше, то вы все делаете на свой страх и риск, я не виноват если после указанных действий ваш компьютер вылетит в форточку.
Футболка программиста
На днях ездил в Хабаровск, чтобы забрать в Хабаровском филиале Академии IT честно заработанную во Всероссийском конкурсе IT-специалистов ITQuiz футболку. Как оказалось я еще не опоздал и призы все еще выдавались, хотя прошел уже месяц со дня опубликования результатов. К тому же, что-то народ не чешется забирать призы - призы забрали наверное всего человек 15-20.
Так что теперь я обладатель уникальной футболки, по крайней мере для моего города :) Все бы хорошо, если бы не одно НО. Почему то организаторы не учли одного факта - что ИТ-специалисты все разных размеров, а все футболки одного размера (причем не самого большого), по крайней мере для программистов. Короче говоря я кое как в нее влез :) Такая же история была во Владивостоке на чемпионате мира про программированию ACM.
Из пожеланий к организаторам - при выборе в качестве приза футболки, неплохо бы запрашивать у пользователя его размер, а то как-то не интересно - на стенку ее чтоли прибивать тем кто не помещается :))
четверг, 17 июля 2008 г.
Отличия новых версий Delphi от Delphi 7
Уже не однократно говорилось о возможностях новых версий IDE Delphi и их отличиях от более ранних версий. Однако мне до сих пор продолжают задавать подобные вопросы. Поэтому я решил один раз ответить и потом всем желающим давать ссылку на этот пост.
Многие блоггеры приводили списки отличий, но делали это как-то сухо – просто списком, и ничего не объясняя, как например, сделано тут. Я, по возможности, постараюсь дать более подробное описание отличий.
Все нововведения в среде Delphi условно делятся на несколько категорий:
- Общие;
- Компилятора/языка Delphi;
- IDE;
- VCL.
Те кто задает вопросы об отличиях наверное придут в ужас от следующей записи (кстати абсолютно работающий в Delphi 2007 код):
type
TAbstract = class abstract (TObject)
public
type
TTestArray = array of integer;
ТЗакрытыйКласс = class sealed
procedure Процедура(var Параметр: Integer);
end;
const
Max = 13;
Min: Integer = 2;
var
S: Integer;
end;
попробуйте-ка его запустить в Delphi 7 :)
Поскольку я являюсь сторонником следующей мысли - что знать некоторые вещи начинающим программистам попросту вредно, поэтому начну свое повествование с того, что наиболее легко увидеть невооруженным взглядом и знание чего не принесет вреда – а именно с изменений в IDE и VCL.
Здесь я ограничусь просто списком, поскольку не хочу раздувать пост. По мере написания этот список будет превращаться в список ссылок на посты, в которых более подробно описывается то или иное нововведение.
Итак, новыми функциями в IDE являются:
- Live Templates (шаблоны кода)
- Block Completion (автозавершение блоков кода)
- History Tab(история редактирования кода)
- Better debugging (улучшенная отладка)
- VCL Guidelines
- Code Folding (сворачивание частей кода)
- SyncEdit (синхронное редактирование)
- Searchable Tool Palette (новая палитра инструментов)
- Line Change indicators (индикаторы редактирования строк кода)
- Refactoring
- Integrated Unit Testing (модульное тестирование)
- Class and UML Modeling (встроенные средства моделирования)