ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Дополнительное задание.Реализовать сортировку таблицы по фамилии, названию книги или числу экземпляров. К сожалению, компонент StringGrid не содержит методов сортировки, поэтому ее приходится реализовывать вручную. Для примера можно воспользоваться любым простейшим методом сортировки.
12. Приложения с несколькими формами Подавляющее большинство реальных приложений содержат несколько взаимодействующих форм. Одна из них считается главной, обычно это форма, созданная при разработке приложения первой. При необходимости главной можно назначить любую форму. Главная форма управляет работой всего приложения в целом, вызывая при необходимости подчиненные формы. Каждой форме соответствует свой модуль, сохраняемый в отдельном файле. Задание. Разработать приложение, содержащее несколько форм:
За основу можно взять любое ранее созданное приложение, например – таблицу текстовых строк. Порядок работы.
· выбрать в меню системы Delphi команду File / New / Form, после чего появляется новая форма и к проекту автоматически добавляется соответствующий модуль, что можно увидеть в окне Редактора Кода за счет появления второй закладки с именем модуля · установить основные свойства новой формы: Caption, Name (например – FAbout) · установить требуемые размеры формы-заставки, установить свойство BorderStyle = bsDialog (окно не может изменять свои размеры), задать режим показа по центру экрана (свойство Position = poScreenCenter) · оформить внешний вид формы с помощью панелей (в примере ниже использовано 7 панелей, некоторые из которых расположены друг на друге для красивого оформления окна), текста, графических изображений · для текста (компонент Label) можно использовать свойства WordWrap (перенос длинного текста по словам на другие строки) и Alignment (для выравнивания текста по центру) · для изображения (компонент Image) надо использовать свойства Picture (для загрузки необходимого изображения) и Stretch (для масштабирования изображения внутри области компонента) · Создать обработчик кнопки закрытия формы стандартным образом (метод Close) · в меню главной формы добавить пункт “О программе” и создать его обработчик для показа формы-заставки в модальном режиме: FAbout.ShowModal; · сохранить новый модуль в каталоге проекта командой File / Save As с изменением имени модуля со стандартного значения Unit2 на более осмысленное, например - UnitAbout · подключить новый модуль к основному (главному) модулю, для чего в разделе реализации главного модуля после директивы implementation записать строку Uses UnitAbout; · сохранить проект и проверить его работу
· в Инспекторе Объектов перейти на форму-заставку, активизировав ее и выбрав в раскрывающемся списке ее имя · установить для формы-заставки свойство KeyPreview в true для того, чтобы форма перехватывала все сообщения от клавиатуры раньше расположенных на ней компонентов · перейти в Инспекторе Объектов на закладку Events и создать обработчик события формы onKeyDown с вызовом метода закрытия формы-заставки · разместить на форме-заставке компонент Timer со страницы System, установить его свойство Interval в необходимое значение (например – 10000 миллисекунд) и создать обработчик его единственного события OnTimer с вызовом метода Close · сохранить проект и проверить его работу
· добавить новую форму, дать ей заголовок и имя FPassword (или любое другое подходящее), сохранить ее модуль в каталоге проекта под подходящим именем (например – UnitPass) · установить свойства показа по центру экрана и диалоговый стиль окна (аналогично форме-заставке), а также убрать из заголовка кнопку системного меню (свойство BorderIcons, подсвойство biSystemMenu = false) · установить свойство Visible в значение false · в текст модуля в разделе реализации ввести ссылку на модуль основной формы (Uses Unit1) · разместить на форме текст-приглашение на ввод пароля, компонент-редактор для ввода пароля, у которого с помощью свойства PasswordChar установить символ-заменитель вводимых символов (например – символ *) · разместить на форме кнопку Проверить и создать ее обработчик, который должен сравнить введенный в редакторе текст с паролем, в случае совпадения показать основную форму вызовом Form1.Show и закрыть окно методом Close, а в противном случае вывести сообщение о неправильном пароле · разместить на форме кнопку Отменить, обработчик которой должен закрыть все приложение, вызвав метод Terminate специального объекта Application · вернуться в Инспекторе Объектов к главной форме, установить ее свойство Visible в false и создать обработчик ее события OnShow; это событие возникает ПЕРЕД показом невидимой главной формы и поэтому позволяет сначала показать в модальном режиме форму ввода пароля; для этого необходимо прежде всего добавить в текст главного модуля ссылку на модуль UnitPass (аналогично ссылке на модуль формы-заставки), затем создать обработчик события формы OnShow, в котором лишь показать форму ввода пароля с помощью метода ShowModal · сохранить проект и проверить его работу
· в Инспекторе Объектов активизировать форму ввода пароля и установить ее свойство KeyPreview = true, что позволяет форме перехватывать весь ввод с клавиатуры раньше своих элементов (редактор, кнопки) · на вкладке Events для формы ввода пароля выбрать событие OnKeyDown, возникающее при нажатии любой клавиши · создать обработчик этого события следующего вида: if (Key = vk_F4) and (ssAlt in Shift) then Application.Terminate; этот код использует переменную Key с кодом нажатой клавиши и структуру-множество Shift, которая хранит коды нажатых служебных клавиш Alt, Shift, Ctrl и позволяет анализировать их с помощью констант типа ssAlt, ssShift, ssCtrl.
Не нашли, что искали? Воспользуйтесь поиском:
|