- •Delphi функции для работы с файлами
- •Работа с дополнительными формами Delphi
- •Работа с дополнительными формами Delphi
- •Форма Form1 содержит вызов формы Form2, которая объявлена в модуле Unit2, но который отсутствует в списке используемых модулей. Вы хотите добавить его?
- •Создание собственных процедур и функций Delphi
- •Пример. Вычисление факториала
- •Урок Delphi 10 Обработка исключительных ситуаций в Delphi
- •Компоненты Delphi Урок 11 Обзор палитры компонентов Delphi
- •Страница Standart
- •Страница Standart
- •Страница System
- •Страница System
- •Компонент Delphi Timer
- •Урок Delphi 12 Работа со строками Delphi
- •StringList Delphi - работа со списком строк
- •Обзор алгоритмов сортировки
- •Модификация: Алгоритм сортировки вставками и его реализация в Delphi
- •Урок Delphi 13 Создание интерфейса пользователя
- •Урок Delphi 14: Мультимедийные возможности Delphi Графика в Delphi
- •Потоки в Delphi Организация многопоточной работы в Delphi
- •Применение потоков
- •Особености взаимодействия потоков с объектами vcl
- •Использование метода Synchronize при работе с потоками
- •Компоненты Delphi Динамическое создание компонентов в Delphi
- •С чего начать изучение программирования?
Работа с дополнительными формами Delphi
Редкая программа обходится одной формой. Мы можем с лёгкостью создавать дополнительные формы Delphi, предоставляющие возможность, например, вести диалог с пользователем, принимать и выводить любую необходимую информацию. В этом уроке научимся создавать несколько форм Delphi дополнительно к основной. Ввести новую форму в программу проще всего нажатием на кнопочку на главном окне Delphi. Также есть и соответствующая команда меню File -» New -» Form
Форма создаётся вместе с новым модулем, описывающим её работу. Сразу же покажем, как удалить Форму из программы. Для этого также есть кнопочка, и команда меню Project -» Remove from project.... Так как Форма создаётся вместе с её модулем, то в появившемся окошке нужно выбрать модуль, который и будет удалён из проекта вместе с Формой:
|
|
Сразу возникает вопрос, а что будет, если попытаться удалить и модуль Unit1, что останется?. Выполните команду Project -» View Sourse. В редакторе кода появится новая вкладка, на которой будет отображён код Главного Окна программы (не Главной Формы, а именно Окна. В Windows ведь все объекты рассматриваются как окна.) Главное окно невидимо, но управляет всем проектом, и может работать вообще без Форм. Туда можно вставлять свой код, и писать нехилые программы, как в классическом Паскале. Все новые формы автоматически заносятся в разряд автосоздаваемых, то есть в начале работы программы они будут автоматически создаваться сразу, одновременно с первой, главной Формой проекта. Нам не придётся этим заниматься в программе, но одновременное создание многих форм занимает ресурсы и время программы. Поэтому предлагаю сразу научиться создавать нужные формы только в нужный момент. Во-первых, нужно отменить автосоздание форм. Выполните команду меню Project -» Options... В появившемся окошке отображаются Main form (главная Форма), Auto-create (автосоздаваемые) и Available (доступные) формы проекта. Нам нужно перевести Форму из разряда автосоздаваемых в разряд доступных Форм. Делается это нажатием кнопки " > " (обратная операция - нажатием кнопки " < "):
|
|
Таким образом, главная Форма Form1 создаётся сама, а дополнительную форму Form2 мы создадим в программе при необходимости. Если этого ничего мы не предприняли (что вполне допустимо при малом количестве дополнительных форм), то для появления новой Формы на экране достаточно написать: Form2.Show; // в случае обычной Формы Form2.ShowModal; // в случае модальной Формы Если же мы перевели дополнительные Формы в разряд доступных, то перед каждым вызовом такой Формы необходимо делать проверку на существование Формы (оператором Assigned) таким образом: if (not Assigned(Form2)) then // проверка существования Формы (если нет, то Form2:=TForm2.Create(Self); // создание Формы) Form2.Show; // (или Form2.ShowModal) показ Формы Теперь разберёмся в разнице между обычными и модальными Формами. Обычные Формы позволяют свободно переходить между всеми Формами, находящимися в данный момент на экране. Модальная Форма в момент вызова блокирует переход между Формами проекта до тех пор, пока не будет закрыта, и работа возможна только в ней. При попытке компилирования программы, содержащей вызов второй формы, Delphi выдаст такой запрос:
означающий:
