Лабораторная. Лабораторный практикум(часть1) Электронный. Практикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей
![]()
|
ЛАБОРАТОРНАЯ РАБОТА 1Разработка простейшего приложения в визуальной среде DelphiЦель лабораторной работы: изучить основы среды Delphi и составить простейшую программу. 1. Краткие сведенияИнтегрированная среда разработчика Delphi Среда Delphi визуально реализуется в виде нескольких одновременно раскрытых на экране монитора окон. Количество, расположение, размер и вид окон может меняться программистом в зависимости от его текущих нужд, что значительно повышает производительность работы. При запуске Delphi на экране картинку появляется главное окно, приведенное на рисунке 1.1. ![]() Рисунок 1.1 – Главное окно Delphi Главноеокно всегда присутствует на экране и предназначено для управления процессом создания программы. Основное меню (см. приложение 2) содержит все необходимые средства для управления проектом. Пиктограммы облегчают доступ к наиболее часто применяемым командам основного меню. Через меню компонентов (см. приложение 3) осуществляется доступ к наборам их свойств, которые описывают некоторый визуальный элемент (компонент), помещенный программистом в окно формы. Каждый компонент имеет определенный набор свойств (параметров), которые программист может задавать. Например, цвет, заголовок окна, надпись на кнопке, размер и тип шрифта и др. Окно инспектора компонентов (вызывается с помощью клавиши F11) предназначено для изменения свойств компонента - закладка Properties (свойства) и создания обработчиков (процедур) при активизации тех или иных событий - страницаEvents(события). Окно формы представляет собой внешний вид создаваемого Windows - приложения. В это окно в процессе проектирования интерфейса программы помещаются необходимые компоненты. Причем при выполнении программы большинство из помещенных компонент будут иметь тот же вид, что и на этапе проектирования. Окно текста программы предназначено для просмотра, написания и редактирования текста программы. В системе Delphi используется язык программирования Object Pascal. При первоначальной загрузке в окне текста программы находится текст, содержащий минимальный набор операторов для нормального функционирования пустой формы в качестве Windows - приложения. При размещении некоторого компонента на форме происходит автоматическая фиксация его имени в коде программы. Программа в среде Delphi представляется набором процедур, вызываемых при наступлении того или другого события и, таким образом, реализует событийно управляемую модель программируемого процесса обработки данных. Для каждого возникающего на форме события, с помощью страницы Events инспектора объектов в тексте программы организуется процедура (procedure), между ключевыми словами begin и end которой необходимо записать на языке Object Pascal требуемый алгоритм. Переключение между окном формы и окном текста программы осуществляется с помощью клавиши F12. 1.2. Структура приложения в Delphi Приложение в Delphi состоит из файла проекта ( .dpr), одного или нескольких файлов исходного текста ( .pas), файлов с описанием компонентов, расположенных на форме, ( .dfm). В файле проекта находится информация о модулях, составляющих данный проект. Файл проекта автоматически создается и редактируется средой Delphi. Файл исходного текста - программный модуль (Unit) предназначен для размещения текста программы на языке Object Pascal. Модуль состоит из 2-х разделов: интерфейсного (interface) и реализации (implementation). В интерфейсном разделе описываются типы, переменные, заголовки процедур и функции, которые могут быть использованы другими модулями. В разделе реализации располагаются тела процедур и функции, описанных в разделе объявлений, а также типы переменных, процедуры и функции, которые будут функционировать только в пределах данного модуля. Структура модуль имеет вид: Unit Unit1; interface //Раздел объявлений implementation //Раздел реализации begin //Раздел инициализации end. При компиляции программы Delphi создает файл с расширением .dcu, содержащий в себе результат перевода в машинные коды содержимого файлов с расширением .pasи .dfm. Компоновщик преобразует файлы с расширением .dcuв единый загружаемый файл с расширением .exe. В файлах, имеющих расширение .-df, .-dp, .-pa, хранятся резервные копии файлов с образом формы, проекта и исходного текста соответственно. 1.3. Пример написания программы Задание: считая заданными значения переменных x, y, z, составить программу вычисления значения арифметического выражения: ![]() ![]() Форму приложения организовать, как показано на рисунке 1.2. ![]() Рисунок 1.2 – Форма приложения 1.3.1. Настройка формы Пустая форма в правом верхнем углу имеет кнопки управления, которые предназначены: для свертывания формы в пиктограмму ![]() ![]() ![]() 1.3.2. Изменение заголовка формы Новая форма имеет одинаковые имя (Name) и заголовок (Caption) - Form1. Для изменения заголовка формы щелкните кнопкой мыши на форме, затем вызовите окно инспектора объектов (F11). В форме инспектора объектов найдите и щелкните мышью на свойстве Caption страницы Properties. В выделенном окне наберите ” Лa6.раб.№1. Ст. гр. 107218 Юртаева Т.А.”. 1.3.3. Размещение строки ввода (Edit) Если необходимо ввести или вывести информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентом Edit. В данной программе с помощью однострочного редактора будут вводиться переменные x, y, z типа real. Выберите на закладке компонентов Standard пиктограмму ![]() Обратите внимание на то, что в тексте программы появились три новых однотипных переменных Edit1, Edit2, Edit3. В каждой из этих переменных с расширением Text будет содержаться строка символов (тип String) и отображаться в соответствующем окне Edit. Так как численные значения переменных x, y, z имеют действительный тип для преобразования строковой записи числа, находящегося в переменной Edit1.Text, в действительное, используется стандартная функция X := StrToFloat(Edit1.Text); Если исходные данные имеют целочисленный тип, например integer, то используется стандартная функция: X := StrToInt(Editl.Text); При этом в записи числа не должно быть пробелов, а действительное число записывается с десятичной запятой или точкой (это зависит от настроек ОС Windows конкретного компьютера). С помощью инспектора объектов установите шрифт и размер символов отражаемых в строке Edit (свойство Font). 1.3.4. Размещение надписей(Label) На форме рисунка 1.2 имеются четыре надписи. Для нанесения таких надписей на форму используется компонент Label. Выберите в палитре компонентов закладки Standard пиктограмму ![]() Обратите внимание, что в тексте программы автоматически появились четыре новых переменных типа TLabel. В них хранятся пояснительные строки, которые можно изменять в процессе работы программы. 1.3.5. Размещение многострочного окна вывода (Мето) Для вывода результатов работы программы обычно используется текстовое окно, которое представлено компонентом Меmо. Справочно: Меmо – многострочный текстовый редактор. Используется для ввода и/или отображения многостросного текста. Выберите на закладке Standard пиктограмму ![]() В тексте программы появилась переменная Memo1 типа TМemo. Информация, которая отображается построчно в окне типа TMemo, находится в массиве строк Memo1.Lines. Каждая строка имеет тип String. Для очистки окна используется метод Memo1.Clear. Для того чтобы добавить новую строку в окно, используется метод Memo1.Lines.Add (переменная типа String). Если нужно вывести число, находящееся в переменной действительного или целого типа, то его надо предварительно преобразовать к типу String и добавить в массив Memo1.Lines. Например, если переменная u:= 100 целого типа, то оператор Memo1.Lines.Add (‘Значение u = ’ + IntToStr(u)) сделает это и в окне появится строка «Значение u = 100». Если переменная u:=-256,38666 действительная, то при использовании метода Меmо1.Lines.Add (‘Значение u= ’ + FloatToStrF(u, ffFixed, 8, 2)) будет выведена строка «Значение u= -256,39». При этом под все число отводится восемь позиций, из которых две позиции занимает его дробная часть. Если число строк в массиве Memo1 превышает размер окна, то для просмотра всех строк используется вертикальная полоса прокрутки. Если длина строки Memo1 превосходит количество символов в строке окна, то в окне отображается только начало строки. Для просмотра всей строки используется горизонтальная полоса прокрутки. 1.3.6. Написание программы обработки события создания формы (FormCreate) При запуске программы возникает событие “создание формы” (OnCreate). Создадим обработчик этого события, который заносит начальные значения переменных x, y, z в соответствующие окна TEdit, а в окне TMemo помешает строку с указанием номера группы и фамилию студента. Для этого дважды щелкнем мышью на любом свободном месте формы. На экране появится текст, в котором автоматически внесен заголовок процедуры - обработчика (процедуры) события создания формы: Procedure TForm1.FormCreate(Sender:TObject); Между begin...end записывается текст программы (см. пример, расположенный ниже). 1.3.7. Написание программы обработки события нажатия кнопки (ButtonClick) Поместите на форму кнопку Button, которая находится на странице Standard панели стандартных компонентов. Справочно: Button – командная кнопка. Обработчик события OnClickэтого компанента, обычно используется для реализации некоторой команды. С помощью инспектора объектов измените заголовок (Caption) – Button1 на слово “Выполнить” или другое по вашему желанию. Отрегулируйте положение и размер кнопки. После этого два раза щелкните мышью на кнопке, появится текст процедуры, которая будет каждый раз вызываться при возникновении события - нажатия кнопки: Procedure TForm1.ButtonClick(Sender: TObject); 1.3.8. Запуск программы Запустить программу можно нажав Run в главном меню Run, или клавишу F9, или пиктограмму ![]() Работа с программой происходит следующим образом. Нажмите (щелкните мышью) кнопку “Выполнить”. В окне Memo1 появляется результат. Измените исходные значения x, y, z в соответствующих окнах Edit и снова нажмите кнопку “Выполнить” - появятся новые результаты. Завершить работу программы можно нажимая кнопку ![]() Текст программы: Unit LabRab_1; interface uses Windows, Messages, SysUlits, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1=class(TForm) Edit1:TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Memo1:TMemo; Button1:TButton; procedure FormCreate(Sender: TObject); procedure Вutton1Click(Sender: TObject): private {Private declarations} public { Public declarations} end; var Form1: TForrn1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text := '3,4'; // Начальное значение Х Edit2.Text := '0,74'; // Начальное значение Y EditЗ.Техt := '19,43'; // Начальное значение Z Memo1.Clear; //Очистка окна редактора Memo1 // Вывод строки в многострочный редактор Memol Memo1.Lines.Add('Лa6.раб.№1. Ст. гр. 107218 Юртаева Т.А.'); end; procedure TForm1.Button1Click(Sender: TObject); var x, y, z : real; a, b, c, u : real; begin x : = StrToFloat(Edit1.Техt); // Считывается значение x // Вывод x в окно Memo1 Memo1.Lines.Add(‘x = ' + Edit1.Text); y := StrToFloat(Edit2.Text); // Считывается значение y // Вывод y в окно Memol Memo1.Lines.Add(‘y =' + Edit2.Text); z := StrToFloat(Edit3.Text); // Считывается значение z // Вывод z в окно Memo1 Memo1.Lines.Add(‘z = ' + Edit3.Text); // Вычисляем арифметическое выражение a := Sqr(Sin(x+y) / Cos(x+y)); b := Exp(y-z); c := Sqrt(Cos(Sqr(x))+Sin(Sqr(z))); u:= a – b*c; //Выводим результат в окно Memo1 Memo1.Lines.Add(‘Результат u:= ’ + FloatToStrF(u, ffFixed, 8, 3)); end; end. |