Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


суббота, 29 мая 2010 г.

Эксперты для комфортной работы в Delphi: CnWizards, часть 1 - улучшение дизайнера форм.

image

Эксперт (здесь) – это design-time пэкэдж или dll-ка, расширяющая стандартные возможности Delphi.

CnPack Wizards - набор инструментов для Delphi, написанный группой разработчиков из Китая, на данный момент является наиболее мощным и удобным бесплатным инструментом для Delphi. Функционал этого набора просто огромен и способен фантастически упростить работу программиста. Официальный сайт проекта: www.cnpack.org но не так давно проект переехал на Google Code.

Этот набор экспертов в данный момент доступен на 5 языках, включая русский. Проект сопровождается подробной справкой, которая существует пока только в английском и китайском варианте.

В этом посте я расскажу о том, как cnWizards расширяют дизайнер форм Delphi.

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

Дизайнер формы с расширениями cnWizards в Delphi 6

Эти кнопочки появляются при активном дизайнере формы. Они могут выглядеть по-разному, в зависимости от версии Delphi и настроек дизайнера.

Большая часть кнопок включается, только когда в дизайнере выделены несколько контролов. Причём, иногда (например при выравнивании по краю) очень важно, какой из контролов был выделен первым.

позиционирование контролов в дизайнере Эти кнопки отвечают за позиционирование выделенных в дизайнере контролов. Они позволяют выровнять все контролы по любой из сторон; а также распределить контролы по вертикали/горизонтали (указав расстояние в пикселях между каждым из контролов, либо равномерно распределить контролы в указанном пространстве, либо придвинуть их вплотную друг к другу)

управление размером контролов в дизайнере Эти кнопки управляют размерами выделенных контролов. Включаю в себя одновременное увеличению длины/высоты всех контролов. Позволяют растянуть/сжать все контролы в высоту/длину до размеров самого большого/маленького контрола. Умеют установить размер всех выделенных контролов, таким же как и размер самого первого контрола.

управление z-порядком контролов в дизайнере Эти кнопки отвечают за позиционирование выделенных контролов внутри родителя (разместить в центре) и за управление z-порядком (отправить контрол в зад, вынести вперёд).

image Эти кнопки включают/выключают стандартные фичи дизайнера, такие как привязка к гриду, показ направляющих. А также там есть кнопка позволяющая заблокировать изменение размеров и положение всех контролов в дизайнере. Можно спокойно кликать мышкой по форме, не опасаясь случайно изменить размер/положение какого-либо контрола.

image

Эти кнопки позволяют (по порядку, слева-направо):

  • выделить в дизайнере активную форму (то же самое можно сделать кликнув левой кнопкой мыши с зажатым Ctrl в стороне от выделенных компонентов);
  • скопировать имена выделенных компонентов в буфер обмена;
  • преобразовать выделенные компоненты в код (создать компоненты и инициализировать свойства);
  • спрятать все невизуальные компоненты (dataset-ы, datasource-ы и прочую нечисть);
  • упорядочить невизуальные компоненты.

image Описание кнопок:

  • Селектор компонентов - позволяет выделить компоненты в дизайнере согласно правилам: по имени компонента, по классу, по присвоенному событию (например выбрать все компоненты, у которых один обработчик), по тэгу.Селектор компонентов cnWizards
  • Запустить корректор свойств, умеющий корректировать свойства согласно правилам. Например, для всех форм у которых свойство Position равно poDesigned заменить на poDesktopCenter, или установить высоту в 21 пиксель для всех кнопок, у которых высота равна 25. Или автоматом установить у всех наследников TDataset свойство Active в False. Корректор свойств умеет работать как с активной формой, так и со всеми формами проекта или группы проектов.
  • Запустить корректор префиксов компонентов, который позволит массово и в одном месте переименовать все компоненты с дефолтными именами (типа Label1, Edit3 и т.п.), а также установить им всем соответствующие префиксы.
  • Открыть диалог переименования компонента

управление табуляцией в CnWizards Эти кнопки отвечают за настройки табуляции (TabOrder):

  • включает отображение текущего TabOrder-a прямо на самом контроле (см. картинку ниже). Таб-ы отображаются разными цветами, в зависимости от уровня вложенности контрола;
    форма с включенной визуализацией TabOder
  • включает режим при котором TabOrder для контрола будет автоматически обновляться после изменения его положения на форме;
  • запускает автоустановку TabOrder в ручном режиме
  • открывает расширенное меню по управлению табуляцией: там можно например, изменить порядок TabOrder только для выделенных компонентов, или сразу для всех форм текущего проекта или группы проектов. Также там можно настроить правила проставления табуляции.

image А эти кнопки отвечают за следующее:

  • Список форма группы проектов (то же самое что Shift+F12). Открывает диалог, позволяющий увидеть список форм любого проекта в группе, или всех проектов сразу. С удобной фильтрацией. =)
  • Поиск и выбор компонента на форме. Открывается диалог позволяющий быстро найти нужный компонент по его имени, классу, тексту.
    селектор компонентов формы CnWizards
  • Меню для работы со скриптами. CnPack Wizards имеют встроенный скриптовый движок, позволяющий расширить функционал IDE с помощью pascal скриптов, но это тема для отдельного разговора.


Следующий пост в серии: Описание CnWizards часть 2: Расширения редактора кода. Включает в себя работу с букмарками, подсветку синтаксиса и операции с выделенными блоками.



  • Последние года 2 я занимаюсь разработкой ERP. До этого 2 года писал CRM. Но такая тема, как системы автоматизации документооборота мне близка и интересна. Как, впрочем и любые темы, относящиеся к оптимизации внутренних процессов компании. Впрочем, пока что мой интерес исключительно теоретический, ибо к управлению компанией у меня пока нет доступа. А хочется. =)

4 комментария:

  1. Китайцы молодцы!

    ОтветитьУдалить
  2. >В последних версиях Delphi кнопочки дизайнера появляются на отдельном тулбаре, а вот в ранних версиях Delphi они размещались прямо вокруг формы

    В последних версиях (>= D2005), это регулируется настройкой 'Embedded designer' во вклвдке 'VCL Designer'

    ОтветитьУдалить
  3. Уважаю Китайців!!!

    Завжди хтів мінімізувати роботу оператора :).

    ОтветитьУдалить

Постоянные читатели