pascalabcnet/PABCNetHelp/LangGuide/Modules/indexmodule.html

105 lines
4.7 KiB
HTML

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="unit">
<param name="Keyword" value="interface">
<param name="Keyword" value="implementation">
<param name="Keyword" value="initialization">
<param name="Keyword" value="finalization">
<param name="Keyword" value="Ðàçäåë èíòåðôåéñà">
<param name="Keyword" value="Ðàçäåë ðåàëèçàöèè">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Ñòðóêòóðà ìîäóëÿ</H1>
<p>Ìîäóëè ïðåäíàçíà÷åíû äëÿ ðàçáèåíèÿ òåêñòà ïðîãðàììû íà
íåñêîëüêî ôàéëîâ. Â ìîäóëÿõ îïèñûâàþòñÿ ïåðåìåííûå, êîíñòàíòû, òèïû,
êëàññû, ïðîöåäóðû è ôóíêöèè. Äëÿ òîãî ÷òîáû ýòè îáúåêòû ìîæíî áûëî èñïîëüçîâàòü
â âûçûâàþùåì ìîäóëå (êîòîðûì ìîæåò áûòü è îñíîâíàÿ ïðîãðàììà), ñëåäóåò óêàçàòü
èìÿ ôàéëà ìîäóëÿ (áåç ðàñøèðåíèÿ .pas) â ðàçäåëå <b><code>uses</code></b>
âûçûâàþùåãî ìîäóëÿ. Ôàéë ìîäóëÿ (.pas) èëè îòêîìïèëèðîâàííûé
ôàéë ìîäóëÿ (.pcu) äîëæåí íàõîäèòüñÿ ëèáî â òîì æå
êàòàëîãå, ÷òî è îñíîâíàÿ ïðîãðàììà, ëèáî â ïîäêàòàëîãå <b>Lib</b>
ñèñòåìíîãî êàòàëîãà ïðîãðàììû <b>PascalABC.NET</b>.</p>
<p>Ìîäóëü èìååò ñëåäóþùóþ ñòðóêòóðó:</p>
<blockquote>
<p><code><b>unit</b> <code class="codeit">èìÿ ìîäóëÿ</code>;</code></p>
<p><code><b>interface</b></code></p>
<p><code>
<code class="codeit">ðàçäåë èíòåðôåéñà </code></code></p>
<p><code><b>implementation</b></code></p>
<p><code><code class="codeit">ðàçäåë ðåàëèçàöèè
</code></code> </p>
<p><code><b>initialization</b></code></p>
<p><code><code class="codeit">ðàçäåë èíèöèàëèçàöèè</code></code></p>
<p><code><b>finalization</b></code></p>
<p><code><code class="codeit">ðàçäåë ôèíàëèçàöèè</code></code></p>
<p><code><b>end</b>.</code> </p>
</blockquote>
<p>Èìååòñÿ òàêæå <a href="simplemodule.html">óïðîùåííûé
ñèíòàêñèñ ìîäóëåé</a> áåç ðàçäåëîâ èíòåðôåéñà è ðåàëèçàöèè.</p>
<p>Ïåðâàÿ ñòðîêà îáÿçàòåëüíà è íàçûâàåòñÿ <b><font color="#FF0000"> <i>çàãîëîâêîì ìîäóëÿ</i></font></b>.
Èìÿ ìîäóëÿ äîëæíî ñîâïàäàòü ñ èìåíåì ôàéëà.</p>
<p>Ðàçäåë èíòåðôåéñà è ðàçäåë ðåàëèçàöèè ìîäóëÿ ìîãóò íà÷èíàòüñÿ
ñ <a href="uses.html">ðàçäåëà </a> <code><b><a href="uses.html">uses</a></b></code> ïîäêëþ÷åíèÿ âíåøíèõ
ìîäóëåé è ïðîñòðàíñòâ èìåí .NET. Èìåíà â äâóõ ðàçäåëàõ
<code><b>uses</b></code> íå äîëæíû ïåðåñåêàòüñÿ.</p>
<p><i>Ðàçäåë </i><code>
<code class="codeit">èíòåðôåéñà</code></code> âêëþ÷àåò îáúÿâëåíèå âñåõ
èìåí, êîòîðûå ýêñïîðòèðóþòñÿ äàííûì ìîäóëåì â äðóãèå ìîäóëè (ïðè ïîäêëþ÷åíèè åãî
â ðàçäåëå <b><code>uses</code></b>). Ýòî ìîãóò áûòü
êîíñòàíòû, ïåðåìåííûå, ïðîöåäóðû, ôóíêöèè, êëàññû, èíòåðôåéñû. Ðåàëèçàöèÿ
ìåòîäîâ êëàññîâ ìîæåò áûòü äàíà ïðÿìî â ðàçäåëå èíòåðôåéñà, íî ýòî íå
ðåêîìåíäóåòñÿ.</p>
<p><i>Ðàçäåë ðåàëèçàöèè</i> ñîäåðæèò ðåàëèçàöèþ âñåõ ïðîöåäóð, ôóíêöèé
è ìåòîäîâ, îáúÿâëåííûõ â ðàçäåëå èíòåðôåéñà. Êðîìå ýòîãî, â ðàçäåëå ðåàëèçàöèè
ìîãóò áûòü îïèñàíèÿ âíóòðåííèõ èìåí, êîòîðûå íå âèäíû âíå ìîäóëÿ è èñïîëüçóþòñÿ
ëèøü êàê âñïîìîãàòåëüíûå. </p>
<p><i>Ðàçäåë èíèöèàëèçàöèè</i> è <i>ð</i><i>àçäåë ôèíàëèçàöèè</i>
ïðåäñòàâëÿþò ñîáîé ïîñëåäîâàòåëüíîñòü îïåðàòîðîâ, ðàçäåëÿåìûõ ñèìâîëîì <code>;</code>. Îïåðàòîðû èç ðàçäåëà
èíèöèàëèçàöèè ìîäóëÿ âûïîëíÿþòñÿ äî íà÷àëà îñíîâíîé ïðîãðàììû,
îïåðàòîðû èç ðàçäåëà ôèíàëèçàöèè ìîäóëÿ
- ïîñëå îêîí÷àíèÿ îñíîâíîé ïðîãðàììû.
Ïîðÿäîê âûïîëíåíèÿ ðàçäåëîâ èíèöèàëèçàöèè è ðàçäåëîâ ôèíàëèçàöèè ïîäêëþ÷åííûõ
ìîäóëåé íåïðåäñêàçóåì. Êàê ðàçäåë èíèöèàëèçàöèè, òàê è ðàçäåë ôèíàëèçàöèè ìîãóò
îòñóòñòâîâàòü. </p>
<p>Âìåñòî ðàçäåëîâ èíèöèàëèçàöèè è ôèíàëèçàöèè ìîæåò
ïðèñóòñòâîâàòü òîëüêî ðàçäåë èíèöèàëèçàöèè â âèäå</p>
<blockquote>
<p><code><b>begin</b></code><br>
&nbsp;<i> ïîñëåäîâàòåëüíîñòü îïåðàòîðîâ</i><br>
<b><code>en</code></b><code><b>d</b>.</code></p>
</blockquote>
<p>Íàïðèìåð:</p>
<blockquote>
<p><code><b>unit</b> Lib;</code></p>
<p><b><code>interface</code></b></p>
<p><code><b>uses</b> GraphABC;</code></p>
<p><code><b>const</b> Dim = 5;<br>
<b>var</b> Colors: <b>array</b> [1..Dim] <b>of</b> integer;</code></p>
<p><code><b>function</b> RandomColor: integer;<br>
<b>procedure</b> FillByRandomColor;</code></p>
<p><b><code>implementation</code></b></p>
<p><code><b>function</b> RandomColor: integer;<br>
<b>begin</b><br>
&nbsp; Result := RGB(Random(255),Random(255),Random(255));<br>
<b>end</b>;<br>
<b>procedure</b> FillByRandomColor;<br>
<b>begin</b><br>
&nbsp; <b>for</b> i: integer := 1 <b>to</b> Dim <b>do</b><br>
&nbsp;&nbsp;&nbsp; Colors[i] := RandomColor; <br>
<b>end</b>;</code></p>
<p><code><b>initialization</b><br>
&nbsp; FillByRandomColor;<br>
<b>end</b>.</code></p>
</blockquote>
<p><a href="cyclemodules.html">Öèêëè÷åñêèå ññûëêè ìåæäó ìîäóëÿìè</a> âîçìîæíû ïðè
îïðåäåëåííûõ îãðàíè÷åíèÿõ.</p>
</body>
</html>