Вторник, 21.11.2017, 05:19

Кибер-Сайт

Приветствую Вас Гость | RSS
Меню сайта
Наши реквизиты
Считаете полезными материалы нашего сайта?
Хотите и можете помочь проекту?
Z222164825293
Категории
Delphi [8]
Delphi, Object Pascal, уроки, статьи, исходники
OpenGL API [9]
Графика на OpenGL API, уроки, статьи, исходники
Blender [9]
Трехмерная графика, моделирование, разработка игр с помощью Blender
3D. Общие вопросы [1]
Наш опрос
Оцените мой сайт
Всего ответов: 91
Статистика
Ваш IP: 54.224.18.114
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » 2013 » Апрель » 5 » Модуль Delphi. Полное описание
01:22

Модуль Delphi. Полное описание

В данном топике я подробно расскажу, из чего состоит модуль в Object Pascal. Итак, рассмотрим модуль в деталях.


unit _Unit_; Ключевое слово и название модуля
interface Начало интерфейсной части модуля
uses Раздел подключения модулей
const Раздел описания констант, доступных подключающему модулю
type Раздел описания типов, доступных подключающему модулю
var Раздел описания переменных, доступных подключающему модулю
Раздел описания заголовков подпрограмм, доступных подключающему модулю (которые описанных в разделе implementation)
implementation Начало описания внутреннего функционала модуля
uses Дополнительный раздел подключения модулей
label Раздел описания меток безусловного перехода
const Раздел описания констант внутреннего функционала
type Раздел описания типов внутреннего функционала
var Раздел описания переменных внутреннего функционала
Раздел описания подпрограмм (заголовки которых можно описать в интерфейсной секции Interface, для вызова из подключающего модуля)

initialization
Раздел инициализации модуля (специальный раздел, который осуществляет действия при запуске модуля (такие, как, инициализация переменных, выделение памяти и т.п.))

finalization
Раздел деинициализации модуля (специальный раздел, специальный раздел, который осуществляет действия при завершении работы модуля (такие, как, освобождение занимаемой памяти и т.п.))

end.
Окончание модуля

Следует отметить что, все  операнды, которые описаны в разделе interface (константы, типы данных, переменные (const, type, var)), а так же заголовки подпрограмм (процедур и функций), все они доступны для вызова из модулей, к которым подключен данный модуль. Константы, типы данных, переменные (label const, type, var), которые описаны в разделе implementation, служат исключительно для внутренних целей и используются только в пределах модуля, обратится к ним из других модулей невозможно. Данное правило относится и к подпрограмм, которые описываются в разделе implementation, заголовки которых не описаны в разделе interface. Таким образом, модуль разделен на две части: внешняя (глобальная) и внутренняя (локальная).

А сейчас, для закрепления теории, рассмотрим все на более конкретном примере. Следует отметить, что обязательными разделами являются только interface и implementation (см. рисунок).


Модуль Delphi. Полное описание. Простейший модуль

Все остальное используется по мере необходимости и не является обязательным. Итак, пример.

unit _Unit_;

interface

const
  PI_ = Pi; // Описываем константу и присваиваем ей результат функции Pi

type
  // Описываем специальный пользовательский тип
  // из трех переменных (полей) типа Extended

  TVector3E = record
    X, Y, Z: Extended;
  end;

var
  _2PI: Extended; // Описываем переменную, которая будет хранить значение PI_ * 2

// Описываем заголовки функций

function LngCirc(R: Extended): Extended;
function Magn(V: TVector3E): Extended;
function MagnExt(V1, V2: TVector3E): Extended;

//Всё описанное выше доступно другим модулям, подключающим данный модуль

implementation

// Функция вычисляет длину окружности
// радиуса R (доступна из других модулей)

function LngCirc(R: Extended): Extended;
begin
  Result := _2PI * R;
end;

// Функция вычисляет вектор двух точек V1 и V2
// (внутренняя (локальная) функция)
// (доступна исключительно в пределах модуля)

function Vector(V1, V2: TVector3E): TVector3E;
begin
  Result.X := V1.X - V2.X;
  Result.Y := V1.Y - V2.Y;
  Result.Z := V1.Z - V2.Z;
end;

// Функция вычисляет магнитуду вектора
// (доступна из других модулей)

function Magn(V: TVector3E): Extended;
begin
  Result := Sqrt(Sqr(V.X) * Sqr(V.Y) * Sqr(V.Z));
end;

// Функция вычисляет расстояние
// между двумя векторами (доступна из других модулей)

function MagnExt(V1, V2: TVector3E): Extended;
var
  _V: TVector3E;
begin
  _V := Vector(V1, V2);
  Result := Magn(_V);
end;

initialization
  _2PI := PI_ * 2; // Инициализируем переменную _2PI

end.

Как видно из примера, вызвать из других модулей можно все функции, кроме функции Vector. Если вам вдруг понадобится эта функция для использования за пределами модуля, то, просто, пропишите её заголовок, в разделе interface.

Скачать исходники
Категория: Delphi | Просмотров: 1900 | Добавил: Admin | Теги: Object Pascal, Delphi для чайников, Delphi Справочная информация, Delphi | Рейтинг: 0.0/0

Похожие материалы
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Календарь
«  Апрель 2013  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Друзья сайта
  • Скачать Blender
  • Архив записей
    Реклама
    Copyright Кибер-Сайт © 2017 | Используются технологии uCoz