GExperts: Помощник для Delphi



В этой статье я хочу рассказать тебе об очень полезном инструменте, который, на мой взгляд, должен быть у каждого Delphi-разработчика. Имя этому инструменту – Gexperts (]]>http://www.gexperts.org/]]>).

Что такое GExperts

GExeprst – это дополнение для Delphi IDE (кстати, он дружит не только с Delphi), позволяющее существенно повысить производительность и качество работы Delphi-разработчика. Путем чего это достигается? Ответ на этот вопрос прост – «Большим количеством полезных функций». В этой заметке я лишь расскажу вам о функциях, а в мартовском номере нашего журнала, вернусь и рассмотрю использование GExperts на более подробных примерах.

Что умеет GExperts

1. ASCII Chart – таблица символов АСКИ. Скажи, ты наверняка сталкиваешься с проблемой, когда тебе требуется получить цифровой код какого-то символа? У меня такая трабла хоть редко, но возникает. До использования этого дополнения я ее решал старым дедовским способом – используя функции ord(), chr(). С GExperts все намного проще. Он просто выводит окно таблицы ASCII.

Выбираешь любой шрифт и тип системы исчисления и - вуаля! Все как на ладони. Никаких лишних телодвижений и самодеятельности.

2. Конструктор MessageBox’ов

В любом приложении приходится выводить различные сообщения. В Delphi этот процесс упрощен до придела. Все сводится к вызову метода MessageBox объекта Application. Указываем необходимые параметры и все готово. Единственное, что мне в этом процессе всегда не нравилось – подбирать константу, отвечающую за внешний вид месседжа. Как ты знаешь, он может быть нескольких видов: Warning, Error, Information и т.д. Стоит мне не программировать на Delphi месяц другой, как моя память напрочь забывает все эти константы. Приходится лезть в справочник и освежать знания. Специально для таких, как я, в GExpert есть фича – Message Dialog. Или попросту говоря, конструктор диалогов (см. соответствующий рисунок).

С помощью этой «полезняшки», состряпать очередной диалог или мессадж- бокс проще пареной репы. Пишем текст, выбираем тип, отмечаем кнопки, которые будут в нем отображаться, тестируем и получаем готовый код.

3. Библиотека макросов (Macro Library).

Мне очень нравится, когда программы, с которыми приходится подолгу работать поддерживают всевозможные варианты автоматизации действий. Например, в Excel, Word есть так называемые макросы, которые позволяют записать действия пользователя, а потом при необходимости их воспроизвести. Они меня очень спасают при выполнении однотипных операций. GExperts вносит подобный механизм и в Delphi IDE. Ты также как и в Excel/Word’е записываешь последовательность действий, а потом при необходимости воспроизводишь ее. Разве это не круто?

4. Горячие клавиши для пунктов меню (IDE Menu Shortcuts).

Я очень люблю пользоваться горячими клавишами. Жаль, только не для всех функций они обычно реализованы в программе. Среда разработки Delphi – не исключение. Для некоторых операций было бы здорово иметь свой хот-кей, а его разработчики не предусмотрели. GExperts элегантно решает и эту проблему. Его функция IDE Menu Shortcuts позволяет привязать свой хот-кей к любому пункту меню IDE. К этой фиче очень быстро привыкаешь и когда приходится поработать за «чужой» Delphi сразу начинаешь ощущать дискомфорт.

5. Надстройка для редактора кода (Editor Experts).

Это последняя фишка, о которой я собираюсь рассказать в этой заметке. В ее возможностях вроде нет ничего фантастического, но она мне очень понравилась. Итак, рассказываю, в чем суть. Editor Experts – это несколько вкусняшек, позволяющих быстро выполнить рутинные операции в редакторе кода. Например, мне часто приходится комментировать отдельные участки кода. Ты знаешь, что в Delphi для этого лучше всего использовать фигурные скобки ({}). Именно позволяют сделать многострочный комментарий. Вроде все удобно, но на самом все иначе. Получается, что для того чтобы закомментировать участок кода, необходимо сначала установить курсор в начале, потом поставить символ открывающий скобки, затем перейти в конец комментируемого участка и проделать ту же самую операции (само собой, поставив символ закрывающей скобки). Лишних телодвижений очень много.

Мне всегда нравилось, как эта операция выполнялась в редакторе кода 1С:Предприятие 8. Выделил кусок кода, нажал хот-кей и на тебе, код стал закомментирован. Передумал комментировать – опять выделил, клацнул хот-кей и все готово. Я очень обрадовался, когда узнал, что GExpert позволяет делать то же самое в моем любимом Delphi. Выбираем Editor Experts, потом Comment Code (или сразу запоминаем горячую клавишу) и все!

Помимо этой полезной фишки, Editor Experts позволяют:

- Вставлять в код текущую дату
- Выравнивать строки
- Изменять регистр текста
- Выполнять сортировку строк
- и т.д.

6. PE Information

Получить сведения о PE – не часто возникающая задача. Однако она все же может возникнуть. Раньше, я ее решал с помощью отдельной утилиты PE Explorer. Теперь я не парюсь, а получаю всю необходимую мне информацию прямо из Delphi. Не правда ли здорово?

7. Браузер классов (Class Browser)

В состав GExperts входит браузер классов. С его помощью очень легко путешествовать по имеющимся в коде классам. Мне очень понравилось, что в этом браузере есть возможность выбирать типы методов класса, которые будут показаны (например, есть возможность отображать лишь приватные методы), а также есть возможность быстрого просмотра кода выбранного метода. Кроме всего вышеперечисленного, с помощью браузера классов ты можешь распечатать «схему» определенного класса. На ней будут показаны родители класса, потомки и т.д. Эта фича приходится весьма кстати, когда требуется задокументировать спроектированные классы.

8. Работящий дворник (Clean Directories)

Ты наверняка знаешь, что в процессе разработки приложения на Delphi, в папке с проектом создается куча временных скрытых файлов. Обычно в имени этих файлов присутствует символ тильды (~). Чтобы избавится от этого мусора есть несколько способов: изменить соответствующую настройку IDE или каждый раз удалять их вручную. Отключать возможность создания временных файлов (по сути, в них находится резервные копии файлов твоего проекта) крайне не рекомендуется. Случается всякое и иногда эти, казалось бы, бесполезные файлы могут все же понадобится. Сам понимаешь, такие случаи, как правило, и случаются тогда, когда ты уже отключил их создание. Именно поэтому, решать эту задачу таким кардинальным способом не стоит.

Минусы второго способа опять же в представлении не нуждаются. Если сказать кратко – это просто неудобно. В качестве автоматизации, я всегда делал bat- файл, в котором были забиты команды для удаления всех не нужных файлов. Каждый раз, создавая новый проект, я копировал в его папку новый батник. Тем самым хоть как-то, но экономил время.

В GExperts эта задача решается на раз-два-три. Выбираем Clean Directories, указываем в появившемся окне папки, в которых необходимо производить удаление временных файлов. По умолчанию, сразу предложена папка с текущим проектом. Помимо директории, нужно указать расширения, которые должны быть удалены. Отмечаем и нажимаем кнопку “Clean”. А что дальше? Ничего! Все уже готово.

9. Резервное копирование проекта (Backup Project)

Ты часто делаешь бэкапы своего проекта? Нет? Очень плохо! Бэкапы делать нужно обязательно и чем, чаще, тем лучше. В любой момент может потребоваться вернуться назад и очень плохо, когда такое возвращение не удается сделать.

В самой Delphi нет встроенных средств для выполнения резервного копирование. Его приходится выполнять ручками – банально компонуя все файлы проекта в архив. Сам понимаешь, операция рутинная и неинтересная.

Я очень был рад, когда узнал, что разработчики GExperts снабдили свое детище функцией Backup Project. С ее помощью на бэкап проект уходит лишь несколько кликов мышкой. В окне BackupProject выбираем файлы проекта, которые необходимо забэкапить и нажимаем кнопку «Backup». Сразу же перед тобой появится окно, в котором требуется указать имя архива и выбрать путь для сохранения.

Кроме того, Backup Project также может похвастаться возможностью установки пароля на создаваемый архив. Вроде мелочь, а приятно.

10. История содержимого буфера обмена (Clipboard History).

Сколько раз при разработке очередного проекта я ловил себя на мысли: «блин, опять затупил! Как меня угораздило затереть содержимое буфер обмена!». Со мной всегда это происходит в неподходящий момент. Бывает нужно перенести какой-то кусок кода из одного места в другое (не переписывать же его). Выделяю код, вырезаю и … отвлекаюсь и копирую в буфер что-нибудь еще. В такие моменты меня начинает пробивать холодный пот, особенно когда я нажимаю Ctrl-Z (чтобы отменить последнее действие), а IDE молчит как партизан. Ситуация не из приятных, особенно когда на кону большой кусок кода :)

К счастью, в GExperts предусмотрели и это. Clipboard History призван, пристально следить за содержимом буфера обмена и хранить в своих недрах копию всех кусков скопированного текста. Затер случайно, нужный «буфер» – не беда. Находим его в Clipboard History и копируем заново или сразу же вставляем в редактор кода. Используй эту фичу и забудь про случайные потери буферов.

11. Библиотекарь кода (Code Librarian)

Функция «Библиотекарь кода» предназначена для хранения кусков кода или попросту говоря – сниппетов. Благодаря этой функции ты можешь привести все свои наработки в порядок. Например, у тебя имеется десяток другой функций. Ты их не оформлял в виде модулей, а просто использовал в проекте. Представь, что завтра придется писать новый проект, в котором тоже понадобится использовать эти функции. Как ты поступишь? Как вариант, полезешь в предыдущий прожект и будешь вытаскивать нужный код из него.

Вот в таких ситуациях тебе и сможет пригодиться функция Code Librarian. Создавай с ее помощи категории, а в них создавай «листки» с кодом. Потребовался код? Юзаешь поиск и в один клик мышки вставляешь в свой проект.

12. Корректор кода (Code Proofreader)

Часто ошибаешься во время набора кода? Не беда! К тебе на помощь готов прийти (нет, не Чип и Дейл) мастер по исправлению кода – Code Proofreader. Корректор кода предназначен для автоисправления синтаксических ошибок. Система работает на основе словарей. Тебе требуются заполнить их типичными ошибками и вариантами исправлениями. Активировав функцию автокорректора ты можешь больше не думать, о том, что можешь допустить ошибку (нет, конечно же, совсем забивать на это не нужно) при написании кода.

Например, я иногда пишу вместо оператора присвоения (:=) символы ;=. Чтобы избавиться от этой траблы раз и навсегда я вбил (а точнее, эта комбинация уже была забита) соответствие для замены. После этого, во время совершения ошибки, Code Proofreader автоматически заменяет введенный мной ошибочный текст.

Таким же образом ты можешь настроить словарь (изначально он уже заполнен), за словами которого CP будет вести наблюдение. В случае ошибки, он также будет производить исправление.

Если ты неправильно что-то настроил и твой код заменяется не так как хотелось бы, у тебя есть возможность откатиться назад. Список всех произведенных замен приведен на закладке Correction History.

13. Таблица компонент (Component Grid)

Component Grid – небольшая тулза, упрощающая редактирование свойств Hint, Tag, HelpContext любых компонент. Все имена компонент перечислены в таблице. Выбираем нужные и редактируем перечисленные свойства.

14. Список процедур (Procedure List)

Ты когда-нибудь мучился при поиске своей процедуры? В больших проектах код разрастается очень быстро и в нем становится тяжело ориентироваться. Особенно если сделать небольшой перерыв в разработке. После таких передышек тяжело вспомнить названия нужных процедур/функций не говоря уже об их местоположении. Для решения подобных проблем, разработчики GExperts предусмотрели замечательную тулзу – Procedure List. Запустив ее, ты увидишь перед собой окно, в котором будут перечислены все процедуры/функции проекта. Чтобы легче добраться в этом списке до нужной процедуры предусмотрен поиск и фильтрация по объекту. Например, если ты точно знаешь, что процедура была описана в объекте TForm, то нет смысла ее искать где-либо еще. Выставляем в поле Objects запись TForm и приступаем к поиску.

15. Популярные файлы (Favorite Files)

Во время кодинга тебе приходится обращаться к сторонним файлам/программам? Если да, то тебе обязательно придется по душе фишка Favorite Files. Она представляет из себя небольшую программку, позволяющую тебе вести списки наиболее часто используемых файлов/программ. Рассмотрим пример. Тебе требуется выполнять запуск архиватора и загрузку в проект определенного модуля. Чтобы как-то сэкономить время и получить чуточку комфорта заюзаем Favorite Files. Создадим в нем две группы: модули и софт, а в каждой из них сделаем по одному ярлыку. В первой будет ссылка на загрузку модуля (причем он должен открываться прямо в IDE), а во второй директории будет ярлык для запуска архиватора. В следующий раз, когда возникнет потребность загрузки модуля или запуска программы, просто открой FF (не FireFox и кликни по соответствующему ярлыку.

Я потратил время и забил в FF все необходимые тулзы и модули. Скажу честно, поначалу запускать все из FF было крайне непривычно. За годы практики руки уже на автомате все делают По-старинке. Но потом, я все, же привык (к хорошему всегда быстро привыкаешь) и теперь уже не хочу возвращаться к старым методам.

16. Зависимости проекта (Project Dependencies)

Тулза Project Dependencies не выполняет фантастических операций, а просто строит дерево зависимостей твоего проекта. Под зависимостью я подразумеваю не алкогольную, а список модулей, которые используются в твоем проекте. Мне эту тулзу удобно использовать для не своих исходников. Открываю чужой проект (меня частенько просят посмотреть код и указать на ошибку) и сразу смотрю список модулей, которые необходимы для работы проекта. Если обнаруживаю имена не знакомых мне модулей (и наверняка отсутствующих в моей коллекции), то сразу же бегу в гугл и начинаю их искать.

Заключение

GExperts – очень полезный аддон. Многие его возможности существенно облегчают процесс программирования на Delphi. Я обычно скептически отношусь к подобным вещам, но GExperts произвел на меня действительно положительное впечатление. Настоятельно рекомендую тебе попробовать их в действие!

Автор: Игорь Антонов aka Spider_NET
Email:
WWW: ]]>http://vr-online.ru]]>

Комментарии

7 комментария(ев)
аватар: Va-Bank
Va-Bank
Дата: СР, 19/05/2010 - 22:40
Звание: Гуру
Сообщений: 8234

Можно привести пример, кто какие макросы записывает на делфи? Просто я например не могу понять, какие однотипные операции можно делать на делфи.

аватар: sd
sd
Дата: ПТ, 21/05/2010 - 15:32
Звание: Энтузиаст
Сообщений: 158

А с C++Builder будет работать?

аватар: Spider_NET
Spider_NET
Дата: Втр, 08/06/2010 - 12:28
Звание: Мастер
Сообщений: 2455

Вроде и для C++ Builder работает.

аватар: LoRDHeLeGaL
LoRDHeLeGaL
Дата: ВС, 08/04/2012 - 20:01
Звание: Наблюдатель
Сообщений: 2

Мое спасение Smile
Прочитал и понял,что без этой программы мне не обойтись.спасибо Good

аватар: Akella225
Akella225
Дата: ЧТ, 08/10/2015 - 18:45
Звание: Наблюдатель
Сообщений: 38

Жаль, что не хватает расширенного списка форм и модулей, как у DDevExtentions

аватар: Belketre
Belketre
Дата: ПТ, 09/10/2015 - 05:43
Звание: Мастер
Сообщений: 1887

Такое есть в CnPack

аватар: Akella225
Akella225
Дата: ПТ, 09/10/2015 - 15:45
Звание: Наблюдатель
Сообщений: 38

знаю, но не хочу ставить ещё и CnPack ради только этого