Работа с несколькими модулями
Когда создается новое приложение, то оно содержит один модуль и форму. Программист может добавить в свой проект столько модулей, сколько ему необходимо. Обычно отдельный модуль необходим, чтобы отделить функции и процедуры, предназначаемые для конкретной задачи. В нем располагаются описание типов и переменные, используемые в других модулях (глобальные) и подпрограммы. Разработка приложений с использованием принципа модульности построения является хорошим тоном.
Чтобы добавить новый модуль в свой проект, необходимо открыть пункт главного меню 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);
Дата добавления: 2015-04-10; просмотров: 705;