Модулдер тақырыбы және олардың бір-бірімен байланысы

Модуль тақырыбы Unit тыйым салынған сөзінен жәнекелесі модуль атауынан тұрады. Delphi ортасының дұрыс жұмыс істеуі үшін және өте көлемді программаларды өңдеуді жеңілдететін құралдарды қосу мүмкіндігін тудыру үшін бұл модулдің бастапқы мәтіні орналасқан дискілік файл атымен сәйкес келуі керек. Мысалы, UnitGroup атты тақырып берілген болсын. Сонда сәйкесінше модулдің бастапқы мәтіні Group.pas дискіліку файлында орналасқан болуы керек. Модулдер аттары негізгі программамен және басқа да модулдермен байланысына қызмет көрсетеді. Мұндай байланыс арнайы орнатылады: Uses <модулдер тізімі> . мұндағы Uses –тыйым салынған сөз ; <модулдер тізімі> -байланыс орнататын модулдер байланысы. Тізім элементтері

Болып бір-бірінен үтір арқылы ажыратылған модул аттары табылады. Мысалы, Uses, Windows, sysUtils, MyUnit  және тағы басқалары:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Егер Uses жариялылығы қолданылса, онда ол негізгі программаның жазылу бөлімін ашып береді. Модулдер басқа модулдерді қолдана алады. Модулдердегі Uses Interface  тыйым салынған сөзінен кейін немесе Implementation cөзінен кейін қолданылады.

Модулдердің интерфейстік бөлімі.

Бұл бөлім Interface  тыйым салынған сөзімен ашылады. Интерфейстік бөлімде модулдердің басқа модулдерге немесе негізгі программаға жетуіне қажетті барлық глобалді модулдер объектілерінің жариялылығынан тұрады. Бұларға жататындар: айнымалылар, типтер, тұрақтылар, процедуралар мен функциялар және тағы басқалар. Интерфейстік бөлімдердегі ауқымды түрдегі кішігірім программаларды жариялаған кезде тек қана олардың тақырыптары көрсетіледі. Мысалы,

unit Cmplx;

interface

type

Complex = record

re,im:real;

end;

function AddC(x,y :Complex) :Complex;

function MulC(x,y :Complex) :Complex;

Егер төменде басқа модулдерге ұсынылған сөйлемді жазсақ, онда Complex типі мен AddC және MulC( бұлар Cmplx модулдерінен алынған) процедуралары оған қол жеткізе алатындай дәрежеде бола алады.

Uses Cmplx;

 Орындалатын бөлімі.

Бұл бөлім implementation тыйым салынған сөзімен басталып және интерфейстіік бөлімде жарияланған кішігірім программалардан тұрады.

Программаларда модулдер үшін локалді объектілер жариялануы мүмкін. Оларға көмекші типтер, тұрақтылар, айнымалылар және кішігірім программалар, сонымен қатар егер қажет болатын жағдай туындаса, онда белгілер жатады. Модулдің интерфейстік бөліміндегі жарияланған программалардың жазылуына негізделген орындалатын бөлімдерде формалді айнымалылар тізімін көрсетуге болатын белгілі бір тақырып болу керек, өйткені олар алдын-ала интерфейстік бөлімде жазылған болатын. Бірақ егер кішігірім программалар тақырыптары толық түрде келтірілген болса, онда тізімі бар формалді параметрлері мен нәтижелері интерфейстік бөлімде жарияланған тақырыптармен сәйкес келуі керек. Мысалы,

unit Cmplx;

interface

type

Complex = record

re,im:real;

end;

function AddC(x,y :Complex) :Complex;

function MulC(x,y :Complex) :Complex;

implementation

function AddC(x,y :Complex) :Complex;

begin

end;

function MulC; // Параметрлер тізімдерінің қайталануынсыз кішігірім программалардың жазылу варианты//

begin

end;

end.

Кішігірім программалар тақырыптарын қысқа түрде жарияланатындай етіп келтірген кезде (алдыңғы мысалдардағы function MulC функциялары) параметрлер тізімі программалар тақырыпшаларындағы алгоритмнің жүзеге асырылу деталдарына дейін түсінуді және кодты оқуды тікелей жеңілдетуге көмектеседі. Орындалатын бөлімдегі кішігірім программалар тақырыптарын дәл көрсету үшін кодтық редактор мүмкіндіктерін пайдаланамыз: интерфейстік бөлімдегі кішігірім программалар тақырыптарының кез-келген бір жеріне курсорды орнатып, Ctrl+shift+C клавишаларын бассақ –кодтық редактор модулдердің орындалатын бөлімінде кішігірім программаларды құрып үлгереді. Тақырыптардың қайталануы орындалатын бөлімде дәл және толық болу керек. Егер біз келесі тақырыпты қолданған болсақ, онда компилятор интерфейстік бөлімдегі барлық функциялардың жарияланған тақырыптарымен мүлде сәйкес келмейтіндігі туралы тез арада белгі берер еді. (Екінші параметрдің Y аты болу керек): function AddC(x,z :Complex) :Complex;

begin

end;

Инициалдану және аяқтау бөлімдері.

Модулдердің бұл бөлімдері көбінесе initialization және finalization бастаушы сөздерімен бірге құрылмауы да мүмкін. Инициалдану бөлімінде негізгі программадағы басқаруды жеткізгенге дейін орындалатын және оның жұмысын дайындау үшін қолданылатын операторлар орналасады.Мысалы, олардағы айнымалылар инициалдалынып, бізге қажетті файлдар ашылуы мүмкін.

Аяқтау бөлімінде негізгі программа жұмысын аяқтағаннан кейін орындалатын операторлар көрсетіледі. Оларда файлдар жабылады, сонымен қатар белгіленген программадағы ресурстар босатылады.

Егер инициалдалынған бөлімдерде бірнеше модуль болатын болса, онда бұл бөлімдер бас программаның uses сөйлемінде модулдер атауларының ретімен бірінен кейін бірі тізбектелініп орындалады. Ал, егер бірнеше модулдерде аяқталу бөлімдері бар болатын болса, онда бұл бөлімдер бас программаның uses сөйлемінде модулдердің атаулары кері түрде орналасып, олар рет-ретімен бірінен кейін бірі тізбектелініп орындалады.