Соглашения о наименовании
Экземпляры компонентов
Важный момент в использовании средств визуального программирования - именование экземпляров компонентов. В то время, когда наиболее актуальной версией среды разработки являлась Borland Delphi 7, значительная часть работы с компонентами велась в рамках фреймворка VCL.
Экземпляры компонентов, описанных в библиотеке визуальных компонентов Borland, часто имели громоздкие названия. Для удобства автоматически сгенерированные средой разработки идентификаторы изменялись на собственные, оформленные согласно шаблону prefixName
. Сокращенное название компонента применялось в качестве префикса идентификатора. Ниже представлены некоторые из них.
Префикс | Компонент |
---|---|
fm | TForm |
mm | TMainMenu |
pm | TPopupMenu |
mi | TMenuItem |
pmi | TPopupMenuItem |
lbl | TLabel |
edt | TEdit |
mem | TMemo |
btn | TButton |
cb | TCheckBox |
rb | TRadioButton |
lb | TListBox |
cbb | TComboBox |
gb | TGroupBox |
rg | TRadioGroup |
pnl | TPanel |
cl | TCommandList |
me | TMaskEdit |
dg | TDrawGrid |
img | TImage |
sbx | TScrollBox |
clb | TCheckListBox |
spl | TSplitter |
actl | TActionList |
act | TAction |
cht | TChart |
Использование префиксной формы может быть необходимо не столько для получения информации об имени типа компонента, сколько о его сущности. Например, понятно, что обозначенный названием btnExecute
объект - кнопка, а имя imgHeader
дано объекту-изображению.
Данный способ именования используется и сейчас, однако в стилях оформления кода разработчиков языка часто применяется InfixCaps с полными именами компонентов.
Одна из причин использования полных имен, возможно, связана с появлением фреймворка FMX (FireMonkey) для кросплатформенной разработки, включающего гораздо большее количества компонентов, чем VCL. В рамках работы с ним использование шаблона наименования ComponentObjname
может оказаться более удобным.
Оба варианта имен корректны, однако в модулях одного проекта смешение стилей не допускается.
Рекомендуемыми шаблонами идентификаторов экземпляров могут служить следующие примеры:
FormMain
fmMain
ButtonExecute
btnExecute
ImageProductLogo
imgProductLogo
EditPassword
edtPassword
CheckBoxAlternativeMode
cbAlternativeMode
Примечание:
Сгенерированные средой разработки имена наподобиеForm1
,Form2
,Button3
,Edit1
могут использоваться, однако их стоит избегать: по таким названиям трудно определить назначение компонента. Кроме этого, подобные идентификаторы создают лишние сложности в процессе разработки.