- •Министерство науки и образования российской федерации
- •Лабораторная работа №1
- •Цель работы
- •Среда визуального проектирования Delphi
- •4.1. Форма приложения
- •3.2. Компоненты формы
- •4.3. Событие и обработчик события
- •4.4. Сохранение проекта
- •5. Запуск приложения
- •6. Структура простой программы Delphi
- •7. Усовершенствование приложения
- •8. Задание
- •8. Контрольные вопросы
4.4. Сохранение проекта
При сохранении проекта Delphi создает несколько файлов. Некоторые из них содержат описание проекта в целом, некоторые — описания программных модулей и форм. Если проект еще ни разу не был сохранен, то в ответ на команду сохранения проекта Save Project As (Сохранить проект как), которая находится в меню File (Файл), Delphi сначала запрашивает имя программного модуля (рис. 12), затем имя проекта (рис. 13), причем требует, чтобы эти имена были разными. Здесь следует обратить внимание на то, что выполняемому файлу Delphi присваивает имя проекта.
Рис. 12. Диалоговое окно сохранения модуля
Рис. 13. Диалоговое окно сохранения проекта
5. Запуск приложения
Запустить приложение можно, не завершая работу с Delphi, для этого надо выбрать команду Run (Выполнить) меню Run.
Если компилятор обнаружит в программе ошибку, то он выделяет строку с неверной инструкцией и в нижней части окна выводит сообщение об ошибке.
Если ошибок в программе нет, компилятор создает исполняемый файл программы, который позже можно будет запустить непосредственно изWindows. Имя исполняемого файла такое же, как и у файла проекта, расширение — exe. Delphi помещает исполняемый файл в тот каталог, где находится файл проекта.
После ввода коэффициентов и нажатия кнопки Вычислить программа вычисляет значения корней уравнения (рис. 14).
|
| |
|
|
Рис.14. Пример работы приложения "Решение квадратного уравнения"
Окно приложения ведет себя, как обычное окно Windows, его можно перемещать по экрану, развернуть на весь экран, свернуть в пиктограмму.
6. Структура простой программы Delphi
Программа Delphi представляет собой набор программных единиц — модулей. Один из модулей, главный модуль, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения формируется средой Delphi.
Ниже приведен текст главного модуля программы решения квадратного уравнения.
Примечание
Главный модуль хранится в файле с расширением dpr. Чтобы увидеть текст главного модуля приложения, надо в меню View (Вид) выбрать командуProject source (Исходный текст проекта).
program Root;
uses
Forms, Root_u in 'ROOT_U.PAS' {Form1};
{$R*.RES}
begin
Application.Title:='Квадратное уравнение' ;
Application.CreateForm(Tform1,Form1) ;
Application.Run;
end.
Начинается главный модуль словом PROGRAM, за которым следует имя программы, которое совпадает с именем проекта. Имя программы задается программистом в момент сохранения проекта, и оно определяет имя создаваемого компилятором исполняемого файла программы. Далее, за словом USES, следуют имена используемых модулей: библиотечного модуля Forms и модуля формы Root_u.
Директива {$R*.RES} указывает компилятору, что нужно использовать файл ресурсов, который содержит описания ресурсов приложения, например, пиктограммы. Звездочка показывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением res.
Примечание
Файл ресурсов не является текстовым файлом, и просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов используют специальные программы, например Resource Workshop. Можно использовать также входящую в состав Delphi утилиту ImageEditor, доступ к которой можно получить, выбрав команду Image Editor (Редактор образов) меню Tools (Сервис).
Исполняемая часть главного модуля находится между BEGIN и END. Инструкции выполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна. Помимо главного модуля каждая программа включает в себя как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.
Ниже приведен текст модуля формы для программы решения квадратного уравнения.
unit Root_u;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: Tbutton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button2: Tbutton;
Button3: TButton;
Procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: Tform1;
implementation
{$R *.DFM}
Procedure Tform1.Button1Click(Sender:TObject) ;
var
a,b,с:real; {коэффициенты уравнения }
d:real; { дискриминант }
xl,x2:real; { корни уравнения }
si,s2:string[7 ] ;
code:integer;
begin
{ввод исходных данных из полей редактирования }
val(edit1.text,a,code);
val(edit2.text,b,code);
val(edit3.text,c,code);
if a=0
then (вывод сообщения об ошибке }
label1.caption:='Ошибка!'+chr(13)
+'Коэффициент при второй степени' +chr(13)+'неизвестного равен нулю'
else begin
{ вычисление корней уравнения }
d:=b*b-4*a*c;
xl:=(-b+sqrt(d))/(2*а);
x2:=(-b-sqrt(d))/(2*a);
{ вывод результата }
str(xl:7:3,sl);
str(x2:7:3,s2);
labell.caption = 'Корни уравнения:' +chr(13)+'xl='+sl
+chr(13)+'x2='+s2;
end;
end;
end.
Начинается модуль словом UNIT, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции USESглавного модуля приложения.
Состоит модуль из трех частей: раздела интерфейса, раздела реализации и раздела инициализации.
- Раздел интерфейса (начинается словом INTERFACE) сообщает компилятору, какая часть модуля является доступной для других модулей программы. Здесь перечислены используемые модулем другие библиотечные модули, описание сформированного Delphi типа Tform1, описание доступных другим модулям переменных.
- Раздел реализации (начинается словом IMPLEMENTATION) содержит локальные объявления и реализацию процедур и функций, поддерживающих работу формы. Начинается раздел директивой {$R *.DFM}, указывающей компилятору, что в раздел реализации надо вставить инструкции установки значений свойств формы, которые находятся в файле с расширением dfm, имя которого совпадает с именем модуля. Файл *.dfm на основе внешнего вида формы генерируется средой Delphi. Просмотреть файл DFM можно при помощи редактора текста. За директивой {$R *.DFM} следует описание обработчиков событий формы. Сюда же программист может поместить описание своих процедур и функций, которые могут вызываться из обработчиков событий обычным образом.
- Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации между BEGIN и END. Если раздел инициализации не содержит инструкций (как в приведенном примере), то слово BEGIN не указывается.
Следует отметить, что значительное количество инструкций в модуль записывает Delphi. Например, Delphi, анализируя действия программиста по созданию формы, формирует описание класса формы. В приведенном примере инструкции, набранные программистом, выделены серым фоном. Очевидно, что средой Delphi выполняется значительная часть работы по составлению текста программы.