Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Створення і використання формСодержание книги
Поиск на нашем сайте
Для підключення нової форми до проекту досить звернутися до репозиторія і вибрати потрібний різновид форми. Менеджер проекту автоматично підключає нову форму до списку використовуваних форм і забезпечує всі необхідні дії по її ініціації. Найперша підключена до проекту форма (стандартне ім'я форми - Form1) стає головним вікном програми. Вікно цієї форми автоматично з'являється на екрані у момент старту програми. Втім, програміст може вказати будь-яку форму, вікно якої стане головним. Для цього потрібно звернутися до опції Project | Options І, розкривши список Main form, вибрати потрібну форму (мал. 1). мал 1. Вікно управління проектом Кожне наступне вікно стає видно тільки після звернення до його методу show або showModal. Щоб звернутися до цих методів, потрібно послатися на об'єкт-вікно, який автоматично оголошується в інтерфейсному розділі пов'язаного з вікном модуля. Для цього, у свою чергу, головне вікно повинне знати про існування іншого вікна, що досягається посиланням на модуль вікна в пропозиції uses. Якщо, наприклад, в ході виконання одного з методів головного вікна програміст захоче викликати вікно з ім'ям fmForm, пов'язане з модулем Formunit, він повинен послатися на цей модуль в пропозиції uses головного вікна: implementation Uses FormUnit; після чого викликати вікно на екран: fmForm.Show; або fmForm.ShowModal; Delphi автоматизує вставку посилання на модуль в пропозицію uses. Для цього на етапі конструювання потрібно активізувати головне вікно, клацнувши по ньому мишею, після чого звернутися до опції File | uses unit. У діалоговому вікні (мал. 2), що з'явилося, потрібно вибрати модуль і натиснути ок. Вставляється посилання в пропозицію, що стоїть за зарезервованим словом Implementation, оскільки звичайне головне вікно в своїй інтерфейсній частині не посилається на елементи інтерфейсної частини другого вікна. Так само можна при необхідності послатися в модулі другого вікна на модуль головного вікна: активізуйте друге вікно і знов викличте опцію File | uses Unit. Відмічу, що, якщо програміст забув послатися на модуль, який підключений до проекту, Delphi при першій же трансляції програми повідомить про це і запропонує вставити бракуюче посилання. Мал. 2. Вставка посилання на модуль При виклику методу show друге вікно з'являється на екрані і працює одночасно з першим, тому управління відразу передається операторові, що стоїть за зверненням до цього методу. Такі вікна називаються немодальними, вони завжди відкриваються в одному методі, а закриваються в іншому. На відміну від цього звернення до show-Modal створює модальне вікно, яке повністю бере на себе подальше управління програмою, тому оператор за зверненням до showModal в зухвалій частині програми отримає управління тільки після закриття модального вікна. Модальні вікна завжди вимагають від користувача ухвалення якого-небудь рішення. З їх допомогою реалізується діалог з користувачем або створюється інформаційне вікно, яке користувач повинен закрити після ознайомлення з інформацією, що міститься в нім. Якщо від користувача потрібне ухвалення рішення, в модальне вікно вставляються залежні або незалежні перемикачі, кнопки і інші інтерфейсні елементи, за допомогою яких користувач зможе повідомити програму про ухвалене рішення. У момент закриття діалогу модальне вікно повинне помістити число, відповідне рішенню користувача, в свою властивість ModalResuit. Деякі стандартні кнопки (ok, Yes, No, cancel і т. п.) автоматично виконують ці дії: поміщають потрібне число в ModalResuit і закривають вікно. У інших випадках про це повинен поклопотатися програміст. Зухвала програма набуває значення ModaiResuit як значення функції showModal і може тут же його проаналізувати: if Form2.ShowModai = mrXXX then.... Можливий і такий варіант: Form2.ShowModal; if Form2.ModaiResuit = mrXXX then..... Для закриття вікна (модального або немодального) використовуються методи Hide або close. Слід врахувати, що метод Close завжди поміщає в ModalResult значення 2 (mrCancel), тоді як Hide не міняє значення цієї властивості, тому, якщо програміст хоче передати в зухвалу програму нестандартний модальний результат, слід писати: ModaiResuit:= MyResult; Hide; // Але у жодному випадку Close! Примітка Підключення нового вікна до проекту призводить до того, що менеджер; проекту розміщує його ім'я в списку автоматично створюваних вікон на мал..1 -список Auto-Create forms). В цьому випадку програміст може не піклуватися про ініціацію, відповідного об'єкту вікна. Проте якщо в програмі використовується безліч вікон, автоматичне їх створення у момент старту програми може істотно затягнути в часі процес завантаження програми; У той же час негайне створення всіх вікон зовсім не обов'язкове, оскільки навряд чи вам знадобиться одночасно показувати їх на екрані в немодальному режимі. Професійні програмісти ніколи не створюють: всі віконні об'єкти у момент старту програми, але використовують їх у міру потреби. Для цього у вікні менеджера проекту посилання на ці форми переносяться в панель Available forms (мал. 1), а звернення до вікна. Application.CreateForm(TAboutBox, AboutBox); AboutBox.show; Мені відомий випадок, коли цей нехитрий прийом дозволив скоротити час завантаження програми із 3 хвилин з гаком до 15 секунд. До речі, корисно відповідним чином набудувати середовище Delphi: викличте Tools I Environment Options і на сторінці Designer приберіть прапорець в перемикачі Autоcreate forms & data modules. ПРОГРАМИ З БАГАТЬМА ФОРМАМИ Складні програми часом вимагають створення безлічі форм, кожна з яких вирішує ту або іншу конкретну задачу. Наприклад, при створенні систем управління базами даних типовою для проекту буде розробка від 50 до 100 і більш за форми. Процес створення такого проекту зазвичай розтягується на декілька місяців, а над його реалізацією трудяться одночасно декілька програмістів. Все це утрудняє орієнтацію програміста, його здатність швидко пригадати призначення тієї або іншої форми. В цьому випадку істотну допомогу може надати файл проекту. Як вже мовилося, поряд з описом включеного в проекту модуля міститься рядок коментаря, в якій Delphi указує ім'я файлу форми. Цей коментар з'являється в діалоговому вікні після клацання по інструментальній кнопці вибору форми або вибору опції view | Forms головного меню. Якщо ви помістите в цьому коментарі довільний текст, він також буде видний у вікні і допоможе вам пригадати призначення конкретної форми. На мал. 3 показана копія екрану з вікном проекту, що містить декілька десятків форм, а на мал. 4 - відповідне діалогове вікно вибору форм. Якщо ви захочете скористатися моєю радою, врахуйте, що ім'я файлу повинне відділятися від вашого коментаря тільки пропусками. Не користуйтеся для розділення клавішею табуляції
Мал. 3 Файл проекту з багатьма формами
|
||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 251; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.86.38 (0.007 с.) |