Рассмотрим простой пример.
var
Index:Integer;
begin
AboutForm. ShowModai ;
Index:=10;
end;
В этом примере показывается модальное окно, и после этого переменной index присваивается значение ю. Так вот переменная index получит значение ю, но только после того, как модальное окно AboutForm закроется.
Для того чтобы создать немодальное окно, нужно вызвать метод show. В этом случае главная форма создаст дочернее окно, показав его на экране, и смело продолжит выполняться дальше. Это позволит вам работать с обеими формами одновременно, переключаться между ними, и код обеих форм будет выполняться как бы параллельно. Это еще не многозадачность, и если одно окно выполняет какие- то действия, то второе ожидает их завершения, поэтому здесь нет истинной параллельности.
Теперь рассмотрим пример.
var
Index:Integer;
begin
AboutForm. Show;
Index:=10;
end;
В этом случае создается немодальное окно, и выполнение кода не останавливается на точке AboutForm. show в ожидании закрытия окна, а спокойно продолжается дальше. То есть будет показано дочернее окно и моментально переменной index будет присвоено значение 10.
Давайте создадим еще одну форму, как мы это уже делали при создании окна AboutForm. Сразу переименуем ее свойство Name в NonModaiForm. Можете что-нибудь написать на ней, например, установим одну кнопку, с помощью которой можно будет закрыть это окно. Сохраните новую форму под именем NonModalUnit.pas.
Теперь вернемся в главную форму и допишем в раздел uses имя модуля NonModaiunit. После этого наша строка uses должна выглядеть так:
Если не хотите подключать эту форму вручную, то выберите из меню File (Файл) пункт Use Unit (Использовать модуль) и выберите в появившемся окне имя модуля для подключения.
Все. Модуль подключен. Теперь можно его использовать. Создадим обработчик события для пункта меню Сохранить и напишем в нем следующее:
Здесь мы отображаем форму NonModaiForm как немодальное окно. Это значит, что если вы запустите программу и выберете из меню пункт Сохранить, то увидите окно новой формы и сможете спокойно переключаться между главной формой и NonModaiForm без каких-либо проблем.
Впоследствии мы еще очень часто будем использовать оба типа окон и вы познакомитесь с их работой более подробно.