Настройки окружения
Эта заметка является продолжением к предыдущей.
Программное окружение, в котором работает программист, а точнее его настройки – сугубо индивидуальная вещь. Но есть несколько моментов, которые прямо или косвенно влияют на результат. Ниже приведены рекомендации, которые будут частью будущего документа; на них будут ссылаться другие разделы документа.
Настройки окружения
Дизайн пользовательского интерфейса должен быть максимально однообразным. Для достижения этого при разработке форм необходимо выполнение следующих требований:
- масштабирование текста в ОС Windows должно быть установлено в 100%;
- тема оформления ОС Windows должна быть классической (с использованием шрифта Tahoma по умолчанию).
Масштабирование текста
При разработке форм в Delphi учитывается текущее разрешение экрана, а точнее параметр PPI — логическое количество точек на дюйм. Во время исполнения приложения, при создании формы, если текущее значение PPI не совпадает с тем, которое было сохранено в dfm-файле, происходит масштабирование.
К сожалению в VCL механизм масштабирования содержит ошибки. Подробно об этом описано здесь.
На уровне BaseForms.pas большая часть проблем исправлена, но новый механизм масштабирования требует, чтобы все dfm-файлы проекта разрабатывались в едином PPI. На текущий момент это значение должно равняться 96.
Это настройка операционной системы, называется «масштабирование текста». Чтобы PPI равнялось 96, масштабирование должно быть установлено в 100%.
Тема оформления
В разных темах оформления используются разные шрифты и разные размеры неклиентских элементов диалоговых окон (строка заголовка, граница окна, полосы прокрутки и другие). Это влияет на внешний вид разрабатываемых в Delphi форм (на разницу между значениями ClientWidth (ClientHeight) и Width (Height) формы, а также на высоту некоторых компонентов типа TEdit и TCombobox, для которых высота определяется по размеру шрифта). Использование разных тем оформления может привести к случайному/лишнему изменению свойств формы и её компонентов.
Классическая тема и шрифт Tahoma являются наиболее распространёнными в корпоративной среде, диалоговые окна и пользовательский интерфейс логичнее всего разрабатывать именно для них.
Настройки IDE
Настройки IDE Delphi — главное меню Tools Options. Эту настройку достаточно выполнить один раз, сразу после установки Delphi.
VCL Designer
Environment Options VCL Designer
Use designer guidelines необходимо сбросить.
Snap to grid – установить.
Grid size необходимо выставить именно в 4 и все компоненты располагать по сетке (Snap to grid) потому, что в Windows есть масштабирование. К числам, кратным 4, хорошо применяются стандартные масштабы текста – 75%, 125%, 150% и выше.
New forms as text – для того, чтобы новые dfm-файлы сохранялись в виде текстовых файлов; это необходимо при сравнении двух разных версий одного файла.
Auto create forms & data modules – выключено, т.к. формы создаются в Run-Time по мере необходимости.
Embedded designer – установить, настройка преследует две цели: а) избежать лишнего/случайного изменения положения формы (свойства Left и Top) в dfm-файл (когда программист просто подвинул форму, чтобы не мешала); б) вообще не сохранять эти свойства в dfm-файл (реализовано на уровне BaseForms – когда значения равны нулю, они не сохраняются).
Editor Options
Editor Options Display
Right margin = 120 – значение 80 использовалось на старых мониторах; сейчас подавляющее большинство мониторов – широкоформатные, значение 120 является наиболее оптимальным как для чтения кода, так и по использованию экранного пространства. Именно это значение используется как максимально допустимая ширина строки в данном документе.
Остальные параметры на данной вкладке являются рекомендуемыми, но необязательными.
Formatter Options
Formatter Delphi Indentation
Formatter Delphi Spaces
Formatter Delphi Line breaks
Formatter Delphi Capitalization
Formatter Delphi Align
DDevExtensions
DDevExtensions – это расширение для IDE Delphi, скачивается и устанавливается отдельно со страницы: https://andy.jgknet.de/blog/ide-tools/ddevextensions/.
После установки необходимо выполнить настройку: IDE Delphi — главное меню Tools DDevExtensions Options.
Extended IDE Settings:
- Disable alpha-sort class completion
Эту настройку необходимо включить, т.к. данный документ вместо автоматического расположения методов в алфавитном порядке обязует это делать осмысленно — см. Порядок объявления методов
Form Designer:
- Active
Включить - Set TLabel.Margins.Bottom to zero
Включить - Do not store the Explicit* properties into the DFM
Включить
Пара комментариев
Первые два скриншота сделаны в Delphi 2010. От использования Delphi 7 мы отказались.
Скриншоты настроек форматировщика кода – из Delphi XE7, здесь он уже более-менее прилично работает, хотя часто промахивается, когда пытаешься отформатировать только выделенный кусок кода.
Насчёт масштабирования – на самом деле не важно, какое оно выставлено в системе. Важно, чтобы у всех членов команды оно было одинаковым (два момента: визуальное наследование и случайное/лишнее обновление dfm-файла). Есть ещё такой момент: определив его равным 100% я себе облегчаю задачу при описании правил создания пользовательских интерфейсов (grid size, размеры компонентов и расстояния между ними).