Стандарт стилевого оформления исходного кода DELPHI
Страница 2. Файлы исходного кода



Файлы исходного кода

Исходный код Object Pascal подразделяется на модули и файлы проекта, которые подчиняются одинаковым соглашениям. Файл проекта Delphi имеет расширение DPR. Этот файл является главным исходным файлом для всего проекта. Любые модули, используемые в проекте, всегда будут иметь расширение PAS. Дополнительные файлы, используемые в проекте (командные, html, DLL и т.д.) могут играть важную роль, но эта глава описывает форматирование только PAS и DPR файлов.

Именование исходных файлов

Язык Object Pascal поддерживает длинные имена файлов. Если при создании имени Вы используете несколько слов, то необходимо использовать заглавную букву для каждого слова в имени: MyLongName.pas. Этот стиль оформления известен как InfixCaps или CamelCaps. Расширения файлов должны быть в нижнем регистре. Исторически, некоторые исходные файлы Delphi именуются по шаблону 8.3, но в настоящее время разработчики не обязаны придерживаться этого ограничения.

Если Вы осушествляете перевод заголовочных файлов C/C++, то паскалевский эквивалент должен иметь тоже самое имя и расширение PAS. Например Windows.pas. Если правила грамматики языка Object Pascal требуют объединения нескольких транслированных файлов в один, то используйте имя того файла, в который Вы вкладываете остальные. Например: если WinBase.h вкладывается в Windows.h, то результирующее имя будет Windows.pas.

Все файлы модулей, созданные в организации ХХХ должны иметь префикс ХХХ

Организация исходных файлов

Все модули Object Pascal могут содержать следующие элементы в определенном порядке:
  • Информация о правах (Copyright/ID);
  • Имя модуля (Unit Name);
  • Объявление включаемых файлов (Include files);
  • Секцию интерфейса (Interface section);
  • Дополнительные определения (Additional defines);
  • Объявление используемых модулей (Uses clause);
  • Реализацию (Implementation)
  • Объявление используемых модулей (Uses clause);
  • Закрывающий оператор и точку (A closing end and a period).
Для визуального разделения элементов между ними должна быть хотя бы одна пустая строка.

Дополнительные элементы могут быть структурированы в порядке, который Вы сочтете нужным, но нужно соблюдать обязательные условия: в начале файла всегда копирайт, затем имя модуля, затем условные директивы и определения, директивы компилятора и файлы включения, затем определение подключений.

{************************************************************}
{ }
{ Модуль ХХХ }
{ Copyright (c) 2001 ООО ХХХХ }
{ отдел/сектор }
{ }
{ Разработчик: ХХ ХХ }
{ Модифицирован: 25 июня 2001 }
{ }
{************************************************************}


unit Buttons;

Директивы компилятора не следует напрямую включать в исходный код. Для этого следует воспользоваться определением включений и подключить глобальный для проекта файл с директивами компилятора:

{$I NX.INC}
interface

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

{$S-,W-,R-}
{$C PRELOAD}


interface

uses
Windows, Messages, Classes, Controls, Forms, Graphics, StdCtrls,
ExtCtrls, CommCtrl;

Секции определения типов и констант Вы можете располагать относительно друг друга как Вам угодно. Секция реализации должна начинаться с ключевого слова implementation, затем объявление используемых модулей (Uses clause), затем любые включение файлов или другие директивы.

implementation

uses
Consts, SysUtils, ActnList, ImgList;

{$R BUTTONS.RES}

Копирайт и комментарий

Пример заголовка для модуля:

 
{************************************************************}
{ }
{ Модуль ХХХ }
{ Copyright (c) 2001 ООО ХХХХ }
{ отдел/сектор }
{ }
{ Разработчик: ХХ ХХ }
{ Модифицирован: 25 июня 2001 }
{ }
{************************************************************}

Следует обратить внимание на элементы заголовка:
  • Назначение модуля;
  • Копирайт;
  • Разработчик;
  • Дата последней модификации для исполняемой версии.
 
 
« Предыдущая статья   Следующая статья »