Работа с несколькими модулями

Когда создается новое приложение, то оно содержит один модуль и форму. Программист может добавить в свой проект столько модулей, сколько ему необходимо. Обычно отдельный модуль необходим, чтобы отделить функции и процедуры, предназначаемые для конкретной задачи. В нем располагаются описание типов и переменные, используемые в других модулях (глобальные) и подпрограммы. Разработка приложений с использованием принципа модульности построения является хорошим тоном.

Чтобы добавить новый модуль в свой проект, необходимо открыть пункт главного меню Delphi File/New/Unit. После этого откроется новый пустой модуль, который содержит следующие разделы:

unit Unit2; // заголовок модуля

interface // раздел интерфейса

implementation // раздел реализации

end.

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

В разделе реализации располагается код подпрограмм, заголовки которых были приведены в предыдущем разделе. Порядок следования подпрограмм в разделе реализации не важен. В разделе реализации можно также объявлять константы, переменные и типы данных, которые будут видны (доступны) только в данном модуле (локальные).

Также могут существовать два необязательных раздела: инициализация и деинициализация [6].

Чтобы новый модуль был подключен к проекту, необходимо сначала сохранить его в папку, в которой находится проект и все модули. Желательно называть модули значащими именами. Затем нужно выбрать пункт главного меню Delphi Project/Add to Project. После этого откроется диалоговое окно, в котором нужно выбрать кнопку открыть (рисунок 36):

Рисунок 36 - Добавление модуля в проект

Пример 21. Расчет значения функции на интервале [хн,хк] с шагом h. Изменим пример 20, в котором рассчитывалось значение функции .

Добавим на форму компонент для ввода основания логарифма (LabeledEdit). Расчет функции будет проводиться в новом модуле. Функция расчета называется Rascet.

Код нового модуля:

unit Mat;

interface

uses SysUtils; // необходимо записать для использования класса

//исключительных ситуаций

// следующие функции можно использовать в любом модуле проекта

function Log(x,a:real):real;

function Rascet(x,a:real;var y:real):boolean;

implementation

// функция расчета логарифма x по основанию a

function Log(x,a:real):real;

begin

Result:=ln(x)/ln(a);

end;

function Rascet(x,a:real;var y:real):boolean;

{ функция логического типа. Если значение вычисляемого параметра

у определено, то значение функции True}

begin

try

y:=Log(x,a);

Result:=true;

except

Result:=false;

end;

end;

end.

Код программы при нажатии на кнопку изменился следующим образом:

//в ввод параметров расчета добавилась строка

a:=StrToFloat(Form1.LabeledEdit3.Text);

//--------------

if (a<=0) or (a=1) then

begin

MessageDlg('Ошибка в записи основании

логарифма', mtError,[mbOK],0);

exit;

end;

case Form1.RadioGroup1.ItemIndex of

0:begin

Form1.StringGrid1.Visible:=true;

Form1.Chart1.Visible:=false;

while xn<=xk do

begin

if i>Form1.StringGrid1.RowCount then

Form1.StringGrid1.RowCount:=

Form1.StringGrid1.RowCount+1;

Form1.StringGrid1.Cells[0,i]:=

FloatToStr(xn);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: