Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Практическое занятие 08
Тема: Создание приложения с модальными формами заставки и запроса пароля.
Цель работы: Получение практических навыков работы в среде ООП Delphi с многооконными приложениями.
Общие сведения
Для подключения новой формы к проекту достаточно обратиться к депозитарию и выбрать нужную разновидность формы. Менеджер проекта автоматически подключает новую форму к списку используемых форм и обеспечивает все необходимые действия по ее инициализации. Самая первая подключенная к проекту форма (стандартное имя формы - Form1) становится главным окном программы. Окно этой формы автоматически появляется на экране в момент старта программы. Каждое следующее окно становится видно только после обращения к его методу Show или ShowModal. Чтобы обратиться к этим методам, нужно сослаться на объект-окно, который автоматически объявляется в интерфейсном разделе связанного с окном модуля. Для этого, в свою очередь, главное окно должно знать о существовании другого окна, что достигается ссылкой на модуль окна в предложении uses. Если, например, в ходе выполнения одного из методов главного окна программист захочет вызвать окно с именем fmForm, связанное с модулем FormUnit, он должен сослаться на этот модуль в предложении uses главного окна:
implementation
uses FormUnit;
после чего вызвать окно на экран:
fmForm.Show;
или
fmForm.ShowModal;
Delphi автоматизирует вставку ссылки на модуль в предложение uses. Для этого на этапе конструирования нужно активизировать главное окно, щелкнув по нему мышью, после чего обратиться к опции File | uses unit. В появившемся диалоговом окне нужно выбрать модуль и нажать ОК. Вставляется ссылка в предложение, стоящее за зарезервированным словом Implementation, т. к. обычно главное окно в своей интерфейсной части не ссылается на элементы интерфейсной части второго окна. Точно так же можно при необходимости сослаться в модуле второго окна на модуль главного окна: активизируйте второе окно и вновь вызовите опцию File | uses Unit. Если программист забыл сослаться на модуль, который подключен к проекту, Delphi при первой же трансляции программы сообщит об этом и предложит вставить недостающую ссылку.
При вызове метода Show второе окно появляется на экране и работает одновременно с первым, поэтому управление сразу передается оператору, стоящему за обращением к этому методу. Такие окна называются немодальными, они всегда открываются в одном методе, а закрываются в другом. В отличие от этого обращение к ShowModal создает модальное окно, которое полностью берет на себя дальнейшее управление программой, поэтому оператор за обращением к ShowModal в вызывающей части программы получит управление только после закрытия модального окна.
Модальные окна всегда требуют от пользователя принятия какого-либо решения. С их помощью реализуется диалог с пользователем или создается информационное окно, которое пользователь должен закрыть после ознакомления с содержащейся в нем информацией. Если от пользователя требуется принятие решения, в модальное окно вставляются зависимые или независимые переключатели, кнопки и другие интерфейсные элементы, с помощью которых пользователь сможет сообщить программе о принятом решении. В момент закрытия диалога модальное окно должно поместить число, соответствующее решению пользователя, в свое свойство ModalResuit. Некоторые стандартные кнопки (Ok, Yes, No, Cancel и т. п.) автоматически выполняют эти действия: помещают нужное число в ModalResult и закрывают окно. В других случаях об этом должен позаботиться программист. Вызывающая программа получает значение ModaiResuit как значение функции ShowModal и может тут же его проанализировать:
if Form2.ShowModai = mrXXX then ....
Возможен и такой вариант:
Form2.ShowModal ;
if Form2.ModaiResuit = mrXXX then .....
Для закрытия окна (модального или немодального) используются методы Hide или Сlose.
Задание к работе
Для ранее разработанного приложения (при выполнении практической работы 07) разработать окно ввода пароля и окно заставки, содержащее информацию о программе и разработчике. При неверном вводе пароля (после 3-й попытки) работа программы должна прекратиться. Окно заставки должно исчезать с экрана через определенный промежуток времени.
Контрольные вопросы