Спецификация формы создания кода Delphi Цель этой спецификации: придать вашему коду унифицированный и стандартный вид, улучшить
Читабельность, понятность, ремонтопригодность
Принцип данной спецификации: имя отражает значение, форма отражает структуру.
1. Стиль устройства
2. Стиль каждого района
3. Стиль заявления
4. Правила именования
Ссылка: официальное руководство Borland по стилю Object Pascal.
Руководство программиста Delphi5 по стандартам кодирования
{ }
{название проекта}
{ }
{Авторское право (C) 2000,2001 Название компании}
{ }
{************************************************ ***** ******}
юнит UnitName;
{************************************************ ***** ******
проект:
Модуль:
описывать:
Версия:
дата:
автор:
обновить:
ЗАДАЧА:
**************************************************** * *****}
интерфейс
использует
----,----,----,----,----,----,----,----,----,----, ----,
----,----, ----,----,----,----;
константа
------------------;
------------------;
------------------;
тип
------------------;
------------------;
------------------;
------------------;
------------------;
------------------;
вар
------------------;
------------------;
------------------;
выполнение
использует
----,----,----,----;
{$R *.RES}
{$R *.DFM}
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
конец.возврат
Комментарии к теме, описание назначения функциональных процедур, комментарии к операторам
Пустые строки: блоки авторских прав, между классами, между методами -- (две строки) Внутренние блоки методов (одна строка)
Пространство: используется для повышения ясности
Отступ: два пробела
----- = ----;
----- = ----;
----- = ----;
----- = ----;Расширение
Префикс: не более C_--- до одного префикса на тему;
Конст
{ Тема 1 }
C_--- = ----; {значение}
C_--- = ----; {значение}
C_--- = ----; {значение}
C_--- = ----; {значение}
{ Тема 2 }
----- = ----;
----- = ----;
----- = ----;
----- = ----; строка ресурса, размещаемая после области переменных.
строка ресурсов
константа
S_--- = '----';
S_--- = '----';
S_--- = '----';
Пример: CM_BASE = $B000;
CM_ACTIVATE = CM_BASE + 0;
CM_DEACTIVATE = CM_BASE + 1;
CM_GOTFOCUS = CM_BASE + 2;
CM_LOSTFOCUS = CM_BASE + 3;
NumPaletteEntries = 20;
BoxPoints: массив[0..5, 0..2] из GLfloat =
((-1, 0, 0),
(0, 1, 0),
(1, 0, 0),
(0, -1, 0),
(0, 0, 1),
(0, 0, -1) );
{ Коды типов вариантов (wtypes.h) }
varEmpty = $0000 {vt_empty};
varNull = $0001 {vt_null};
varSmallint = $0002; {vt_i2};
GIFVersions: массив [gv87a..gv89a] из TGIFVersionRec = ('87a', '89a');
Т---- = ---------
Тип объекта -> Сущность с отслеживанием состояния и предоставление услуг.
Т---- = класс(----)
Частный
--------
--------
защищенный
--------
--------
общественный
--------
--------
опубликовано
--------
--------
конец Сортировать по алфавитуЧастный;
1. Все данные помещаются в раздел Private, начиная с F.
2. Указатели методов, соответствующие всем атрибутам событий, помещаются в область Private, начиная с F.
3. Методы атрибутов Get и Set размещаются в области Private --> не готовы к наследованию.
4. Способ ответа на сообщение находится в области «Приват».
защищенный
1. Методы и атрибуты, которые вызываются подклассами, но не могут быть вызваны внешним миром.
2. Методы подклассов для перегрузки виртуальных абстрактных;
общественный
1. Создайте метод деструктора
2. Методы внешних вызовов
3. Атрибуты внешних вызовов
опубликовано
1. Свойства, отображаемые в Инспекторе объектов для использования в проектах.
2. Пример реакции на событие, которая отображается в Инспекторе объектов во время разработки: TGIFVersion = (gvUnknown, gv87a, gv89a);
TGIFVersionRec = массив [0..2] символов;
PInterfaceTable = ^TInterfaceTable;
TInterfaceTable = упакованная запись
EntryCount: целое число;
Записи: массив [0..9999] из TInterfaceEntry;
{ декларация forWord }
TGIFImage = класс;
TGIFSubImage = класс;
{--------------------------
TGIFItem
--------------------------}
TGIFItem = класс(TPersistent)
частный
ФГИФимадж: ТГИФимадж;
.............
конец;
Будьте осторожны, чтобы не использовать переменные объекта класса по умолчанию, объявите их в вызывающей программе!
вар
-----------: -------;
-----------: -------;
пример:
GIFDelayExp: целое число = 10; {Множитель задержки в мс.}
GIFDelayExp: целое число = 12;
тема
-------------------------------------------------- --------}
{Цель метода}
процедура ----------------------------
начинать
--------;
--------;
конец;
{Цель метода}
функция-----------------------------
начинать
--------;
--------;
конец;
Возврат формата