Лабораторная работа 1 знакомство с объектноориентированной средой программирования delphi цель и задачи работы
Скачать 4.57 Mb.
|
5.6. Использование форм в приложенияхФорма является важнейшим визуальным компонентом. Формы представляют собой видимые окна Windows и являются центральной частью практически любого приложения. Форма представляется компонентом Form класса TForm, на основе формы начинается конструирование приложения. На форме размещаются визуальные компоненты, образующие интерфейсную часть приложения, и системные (невизуальные) компоненты. Таким образом, форма представляет собой компонент Delphi, служащий контейнером для всех других компонентов. Каждое приложение может иметь несколько форм, одна из которых является главной и отображается первой при запуске программы. При закрытии главного окна (формы) приложения прекращается работа всего приложения, при этом также закрываются все другие окна приложения. При конструировании приложения удобнее указать главную форму в окне параметров проекта. Главная форма выбирается в раскрывающемся списке Main Form на странице Form, а Delphi автоматически вносит в файл проекта соответствующие изменения. Типичная форма представляет собой прямоугольное окно с рамкой. Большинство окон содержит область заголовка, в которой расположены пиктограмма заголовка, заголовок и ряд кнопок, позволяющих свертывать, развертывать (восстанавливать) и закрывать окно, вызывать окно подсказки. Во многих формах находятся строка главного меню (под областью заголовка) и строка состояния (обычно в нижней части окна). При необходимости на форме могут автоматически появляться полосы прокрутки, предназначенные для просмотра содержимого окна. Остальная часть пространства окна называется клиентской областью. В ней можно размещать элементы управления, выводить текст и графику, манипулировать дочерними окнами. Форма может быть модальной и немодальной. Немодальная форма позволяет переключиться в другую форму приложения без своего закрытия. Модальная форма требует обязательного закрытия перед обращением к любой другой форме приложения. Для отображения формы в модальном режиме служит метод ShowModal. Любую модальную форму можно сконструировать программно, однако полезно учитывать, что для выполнения типовых действий Delhi предлагает ряд предопределенных диалогов. Формы, которые отображают различные сообщения и требуют от пользователя ввода какой-либо информации, часто называют диалогами. Диалоговые формы обычно используются при выполнении таких операций, как ввод данных, открытие или сохранение файлов, вывод информации о приложении, установка параметров приложения. Наиболее простые диалоги реализуются с помощью специальных процедур и функций, в более общих случаях удобно использовать специальные компоненты – стандартные диалоги. Кроме общих форма имеет и специфические, определяемые ее особым значением, свойства, методы и события. Часть их характеризует форму как главный объект приложения, другая часть присуща форме как контейнеру других компонентов. Для создания экземпляров форм служит метод Create. Событие OnCreate при создании формы возникает один раз, остальные события происходят каждый раз при отображении формы, при ее активизации и прорисовке. Способом управления видимостью форм на экране является применение методов Show и Hide, соответственно. В момент отображения формы на экране ее свойство Visible принимает значение True и возникает событие OnShow. При скрытии формы свойство Visible принимает значение False и возникает событие OnHide. Каждый раз при получении фокуса ввода формой, например, при щелчке кнопкой мыши в области формы, происходит ее активизация и возникает событие OnActivate. При потере фокуса формой возникает coбытие OnDeActivate. Событие OnPaint возникает при необходимости перерисовки формы, если до этого часть ее была закрыта другими окнами. Для закрытия формы используется метод Close, который удаляет ее с экрана. В случае закрытия главной формы прекращается работа всего приложения. Процедура Close не уничтожает созданный экземпляр формы, и форма может быть снова вызвана на экран. Уничтожение формы (в целях экономии оперативной памяти) можно выполнить с помощью методов Release, Free или Destroy, после чего работа с этой формой невозможна. Предпочтительным методом удаления формы считается метод Free, который предварительно проверяет возможность удаления. При каждом изменении размеров формы в процессе выполнения приложения возникает событие OnResize. Стиль формы определяется свойством FormStyle. Каждая форма имеет ограничивающую рамку. Вид и поведение рамки определяет свойство BorderStyle. Изображаемое формой меню задается свойством Menu. Каждая форма отображает в области заголовка слева свою пиктограмму, определяемую свойством Icon. Свойство Icon можно задать с помощью Инспектора объектов или динамически. Свойство Position определяет размещение и размер формы. Если одна форма выполняет какие-либо действия с другой формой, то в списке uses раздела implementation модуля первой формы должна быть ссылка на модуль второй формы. Форма может выполнять различные операции не только с другой формой но и с отдельными ее компонентами. В этом случае также нужна ссылка на модуль другой формы. 6. ЛАБОРАТОРНЫЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ 6.1. Задания к лабораторной работе Написать программу расчета функции. Варианты заданий приведены в приложении 2. В программе использовать: - главную форму и форму справки; - главное меню с пунктами Файл (Выход), Справка (О программе…); - однострочный редактор для ввода значений X и вывода значений функции Y; - многострочный редактор для вывода справочной информации; - командные кнопки Вычислить, Очистить, Выход. Дополнительное задание Создать заставку приложения. Изменения, которые необходимо внести в файл проекта приведены в приложении 3. 6.2. Методические указания по выполнению заданий 1. На диске D создайте папку проекта с произвольным именем (рекомендуется Project). 2. Запустите среду программирования Delphi. Внимательно изучите интерфейс среды разработки. 3. Создайте файл проекта Меню > File > New Application. 4. Сохраните файл проекта в созданную ранее папку D:\Project. Меню > File > Save Project As… Исходный текст файла проекта представлен в приложении 1. 5. Создайте Меню, для чего выберите компонент MainMenu на палитре компонентов и поместите его на главную форму. В свойствах объекта выберете Items > menu, наименование пункта меню задается путем присвоения нужного значения его свойству Caption. Вид меню при конструировании показан на рис. 6. Изменяя значение Caption, создайте пункты меню «Файл» с подменю «Выход» и «Справка» с подменю «О Программе…». Рис. 6. 6. Установите на форму следующие компоненты: GroupBox1, GroupBox2, Edit1, Edit2, BitBtn1, BitBtn2, BitBtn3 (рис. 7). Рис. 7. Выделяя объекты на форме измените их свойства Caption в диспетчере объектов следующим образом: Form1– «Программа», GroupBox1 – «Значение Х», GroupBox2 – «Значение функции», BitBtn1 – «Вычислить», BitBtn2 – «Очистить», BitBtn3 – «Выход». Создание интерфейса главной формы приложения закончено. Запустите приложение, выбрав кнопку RUN на панели инструментов или нажав клавишу F9. Внешний вид главной формы представлен на рис. 8. Для возвращения к проектированию выберите кнопку закрыть в области заголовка формы. Рис. 8. 7. Начинаем определять функциональность приложения. Выделите на форме кнопку «Вычислить»-BitBtn1, в диспетчере объектов на закладке «Событие – Events» установите событие для данной кнопки OnClick (рис. 9). На панели инструментов нажмите кнопку , а в окне модуля опишите процедуру вычисления функции согласно вашему варианту задания, которое представлено в таблице в приложении 2. Исходный текст программы представлен в файле модуля главной формы в приложении 1. Рис. 9. 8. Выделите на форме кнопку «Очистить – BitBtn2», а в диспетчере объектов на закладке «Событие – Events» установите событие для данной кнопки OnClick. На панели инструментов нажмите кнопку , а в окне модуля опишите процедуру очистки полей и установки курсора, текст которой представлен в файле модуля главной формы в приложении 1. 9. Выделите на форме кнопку «Выход – BitBtn3», а в диспетчере объектов на закладке «Событие – Events» установите событие для данной кнопки – OnClick. На панели инструментов нажмите кнопку , а в окне модуля опишите процедуру «Выход из программы», текст процедуры приведен в файле модуля главной формы в приложении 1. 10. Объедините действие кнопки BitBtn3 с действием кнопки N2:TMenuItem строчного меню по следующему принципу. На форме выделите компонент MainMenu1, а в инспекторе объектов Menu>Item выделите пункт меню N2:TMenuItem (Выход). В событиях данной кнопки укажите ту кнопку, с действием которой нужно связать действие данной кнопки (рис. 10). Рис. 10. 11. Создайте новую форму, для чего на панели инструментов нажмите кнопку NewForm. Установите на форме следующие компоненты: Memo1, Bevel1, BitBtn1 (рис. 11). Рис. 11 12. Для компонента Memo1 измените содержание строк, вызвав свойство Lines в Инспекторе объектов. 13. Выделите на форме кнопку «BitBtn1», а в диспетчере объектов на закладке «Событие – Events» установите событие для данной кнопки, для чего выделите эту кнопку и в диспетчере объектов измените свойства Kind > bkOK. 14. Для вызова данной формы нужно описать событие кнопки «О программе» главного меню главной формы 1 (TForm1.N4Click), для чего необходимо выделить компонент Menu > Item, а в инспекторе объектов выделить пункт меню N4:TMenuItem. В процедурах этой кнопки установите OnClick. В модуле опишите процедуру вызова формы (согласно приложению 1). Исходный текст программы представлен в тексте модуля формы «О программе» в приложении 1. 15. Добавьте к проекту новый модуль Меню > File > Use Unit…. 16. Скомпилируйте проект для чего на панели инструментов, нажмите кнопку Run. 7. СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ 7.1. Результаты выполнения подготовительного задания: титульный лист, цель работы, краткие теоретические сведения. 7.2. Результаты выполнения лабораторных заданий, оформленные в виде текста файла проекта и файлов модулей. 7.3. Выводы по результатам выполнения заданий и заключение по работе в целом. 8. КОНТРОЛЬНЫЕ ВОПРОСЫ Перечислите базовые понятия объектно-ориентированного программирования. Какой смысл имеют понятия инкапсуляции, наследования и полиморфизма в ООП? Для чего создана интегрированная среда разработки Delphi? Каковы ее основные задачи? Какие окна составляют интегрированную среду разработки Delphi? Что содержит главное окно Delphi? Для чего используется окно инспектора объектов Delphi? Что происходит в окне конструктора формы Delphi? Что записывает программист в окне редактора кода Delphi? Какие файлы создаются при разработке проекта Delphi? Что записывается в файле проекта Delphi? Как осуществляется компиляция, сборка и запуск проекта Delphi? Дайте характеристику этапов процесса разработки приложения. На какие группы делятся компоненты Delphi? перечислите основные компоненты Delphi. Что такое свойства компонента? Перечислите основные свойства компонентов Delphi. Что определяют методы компонента? Перечислите основные методы компонентов Delphi. Что определяют события компонента? Перечислите основные события компонентов Delphi. Дайте характеристику формы как основному компоненту приложения Delphi. Приложение 1 Файл проекта program Project; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. Файл модуля главной формы (Form1) unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, Menus, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; GroupBox2: TGroupBox; Edit1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; GroupBox3: TGroupBox; Edit2: TEdit; Bevel1: TBevel; Bevel2: TBevel; procedure N4Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.DFM} \\ Открытие формы Form2 (О Программе…), процедура нажатия кнопки MainMenu > N4: TmenuItem «О Программе…» \\ procedure TForm1.N4Click(Sender: TObject); begin Form2.ShowModal; end; \\ Выход из программы, процедура нажатия кнопки BitBtn3Click «Выход» \\ procedure TForm1. BitBtn3Click (Sender: TObject); begin close; end; \\ Вычисление значения функции, процедура нажатия кнопки «Вычислить» \\ procedure TForm1.BitBtn1Click(Sender: TObject); var X,Y: real; I: integer; S:string; begin val(edit1.text,X,I); Y:=sqr(X); str(Y:3:3,S); Edit2.Text:=S; end; \\ Очистка полей и установка курсора, процедура нажатия кнопки «Очистить» \\ procedure TForm1.BitBtn2Click(Sender: TObject); begin Edit1.Clear; Edit2.Clear; Edit1.SetFocus; end; end. Файл модуля формы «О программе» (Form2) unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm2 = class(TForm) Memo1: TMemo; Bevel1: TBevel; BitBtn1: TBitBtn; private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.DFM} end. Приложение 2
Приложение 3 program Project2; uses Forms, windows, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}, Unit3 in 'Unit3.pas' {Form3}; \\ Форма-заставка {$R *.RES} begin Application.Initialize; Form3:=Tform3.Create(Application); Form3.Show; Form3.Update; sleep(3000); Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Form3.Hide; Form3.Free; Application.Run; end. Библиографический список1. В. Гофман, А. Хомоненко. Delphi 5. СПб.: БХВ-Петербург, 2001. 2. Программирование в среде Delphi. Пер.с англ./Д. Дантеманн, Д. Мишел, Д. Тейлор. К.: НИПФ «ДиаСофт Лтд.», 1995. СОДЕРЖАНИЕ 1. Цель и задачи работы 1 2. Состав используемых аппаратно-технических средств 1 3. Указания по технике безопасности 1 4. Подготовительное задание 1 5. Теоретические сведения 2 6. Лабораторные задания и методические указания по их выполнению 29 7. Содержание отчета по лабораторной работе 34 8. Контрольные вопросы 34 Приложение 1 36 Приложение 2 36 Приложение 3 39 Библиографический список 40 |