Íà÷èíàåòñÿ ìîäóëü ñëîâîì unit, çà êîòîðûì ñëåäóåò èìÿ ìîäóëÿ. Èìåííî ýòî èìÿ óïîìèíàåòñÿ â ñïèñêå èñïîëüçóåìûõ ìîäóëåé â èíñòðóêöèè uses ãëàâíîãî ìîäóëÿ ïðèëîæåíèÿ.
Ìîäóëü ñîñòîèò èç ñëåäóþùèõ ðàçäåëîâ:
– èíòåðôåéñà;
– ðåàëèçàöèè;
– èíèöèàëèçàöèè.
Ðàçäåë èíòåðôåéñà (íà÷èíàåòñÿ ñëîâîì interface) ñîîáùàåò êîìïèëÿòîðó, êàêàÿ ÷àñòü ìîäóëÿ ÿâëÿåòñÿ äîñòóïíîé äëÿ äðóãèõ ìîäóëåé ïðîãðàììû.  ýòîì ðàçäåëå ïåðå÷èñëåíû (ïîñëå ñëîâà uses) áèáëèîòå÷íûå ìîäóëè, èñïîëüçóåìûå äàííûì ìîäóëåì. Òàêæå çäåñü íàõîäèòñÿ ñôîðìèðîâàííîå Delphi îïèñàíèå ôîðìû, êîòîðîå ñëåäóåò çà ñëîâîì type.
Ðàçäåë ðåàëèçàöèè îòêðûâàåòñÿ ñëîâîì implementation è ñîäåðæèò îáúÿâëåíèÿ ëîêàëüíûõ ïåðåìåííûõ, ïðîöåäóð è ôóíêöèé, ïîääåðæèâàþùèõ ðàáîòó ôîðìû.
Íà÷èíàåòñÿ ðàçäåë ðåàëèçàöèè äèðåêòèâîé {$R *.DFM}, óêàçûâàþùåé êîìïèëÿòîðó, ÷òî â ïðîöåññå ãåíåðàöèè âûïîëíÿåìîãî ôàéëà íàäî èñïîëüçîâàòü îïèñàíèå ôîðìû. Îïèñàíèå ôîðìû íàõîäèòñÿ â ôàéëå ñ ðàñøèðåíèåì dfm, èìÿ êîòîðîãî ñîâïàäàåò ñ èìåíåì ìîäóëÿ. Ôàéë îïèñàíèÿ ôîðìû ãåíåðèðóåòñÿ ñðåäîé Delphi íà îñíîâå âíåøíåãî âèäà ôîðìû.
Çà äèðåêòèâîé {$R *.DEM} ñëåäóþò ïðîöåäóðû îáðàáîòêè ñîáûòèé äëÿ ôîðìû è åå êîìïîíåíòîâ. Ñþäà æå ïðîãðàììèñò ìîæåò ïîìåñòèòü äðóãèå ïðîöåäóðû è ôóíêöèè.
Ðàçäåë èíèöèàëèçàöèè ïîçâîëÿåò âûïîëíèòü èíèöèàëèçàöèþ ïåðåìåííûõ ìîäóëÿ. Èíñòðóêöèè ðàçäåëà èíèöèàëèçàöèè ðàñïîëàãàþòñÿ ïîñëå ðàçäåëà ðåàëèçàöèè (îïèñàíèÿ âñåõ ïðîöåäóð è ôóíêöèé) ìåæäó begin è end. Åñëè ðàçäåë èíèöèàëèçàöèè íå ñîäåðæèò èíñòðóêöèé (êàê â ïðèâåäåííîì ïðèìåðå), òî ñëîâî begin íå óêàçûâàåòñÿ.
Òàêèì îáðàçîì, ñòðóêòóðàó ìîäóëÿ ñ ïóñòîé ôîðìîé âûãëÿäèò ñëåäóþùèì îáðàçîì:
unit Unit1;
interface//îòêðûòûé èíòåðôåéñ ìîäóëÿ
{ñïèñîê ïîäêëþ÷àåìûõ ìîäóëåé}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
{îáúÿâëåíèå êëàññà ôîðìû}
type
TForm1 = class(TForm)
Private//çàêðûòûé ðàçäåë êëàññà
{ Private declarations }
{ñþäà ìîãóò ïîìåùàòüñÿ îáúÿâëåíèÿ ïåðåìåííûõ, ôóíêöèé è ïðîöåäóð, âêëþ÷àåìûõ âêëàññ ôîðìû, íî íå äîñòóïíûõ äëÿ äðóãèõ ìîäóëåé}
public//îòêðûòûé ðàçäåë êëàññà
{ Public declarations }
{ñþäà ìîãóò ïîìåùàòüñÿ îáúÿâëåíèÿ ïåðåìåííûõ, ôóíêöèé è ïðîöåäóð, âêëþ÷àåìûõ âêëàññ ôîðìû è äîñòóïíûõ äëÿ äðóãèõ ìîäóëåé }
end;
var
Form1: TForm1;
{ñþäà ìîãóò ïîìåùàòüñÿ îáúÿâëåíèÿ òèïîâ, êîíñòàíò, ïåðåìåííûõ, ôóíêöèé è ïðîöåäóð, ê êîòîðûì áóäåò äîñòóï èç äðóãèõ ìîäóëåé, íî êîòîðûå íå âêëþ÷àþòñÿ â êëàññ ôîðìû}
implementation
{$R *.DFM}
{ñþäà ìîãóò ïîìåùàòüñÿ ïðåäëîæåíèÿ uses, îáúÿâëåíèÿ òèïîâ, êîíñòàíò, ïåðåìåííûõ, ê êîòîðûì íå áóäåò äîñòóïà èç äðóãèõ ìîäóëåé. Òóò æå äîëæíû áûòü ðåàëèçàöèè âñåõ îáúÿâëåííûõ â ðàçäåëå interface ôóíêöèé è ïðîöåäóð, à òàêæå ìîãóò áûòü ðåàëèçàöèè ëþáûõ äîïîëíèòåëüíûõ, íå îáúÿâëåííûõ ðàíåå ôóíêöèé è ïðîöåäóð}
end.
|