Модальные и немодальные окна в Delphi

Рассмотрим простой пример.

procedure TFormi.AboutClick(Sender: TObj ect);

var

Index:Integer;

begin

AboutForm. ShowModai ;

Index:=10;

end;

В этом примере показывается модальное окно, и после этого переменной index присваивается значение ю. Так вот переменная index получит значение ю, но только после того, как модальное окно AboutForm закроется.

Для того чтобы создать немодальное окно, нужно вызвать метод show. В этом случае главная форма создаст дочернее окно, показав его на экране, и смело про­должит выполняться дальше. Это позволит вам работать с обеими формами одно­временно, переключаться между ними, и код обеих форм будет выполняться как бы параллельно. Это еще не многозадачность, и если одно окно выполняет какие- то действия, то второе ожидает их завершения, поэтому здесь нет истинной парал­лельности.

Теперь рассмотрим пример.

procedure TForm1.AboutClick(Sender: TObject);

var

Index:Integer;

begin

AboutForm. Show;

Index:=10;

end;

В этом случае создается немодальное окно, и выполнение кода не останавлива­ется на точке AboutForm. show в ожидании закрытия окна, а спокойно продолжается дальше. То есть будет показано дочернее окно и моментально переменной index будет присвоено значение 10.

 

Давайте создадим еще одну форму, как мы это уже делали при создании окна AboutForm. Сразу переименуем ее свойство Name в NonModaiForm. Можете что-нибудь написать на ней, например, установим одну кнопку, с помощью ко­торой можно будет закрыть это окно. Сохраните новую форму под именем NonModalUnit.pas.

 

Теперь вернемся в главную форму и допишем в раздел uses имя модуля NonModaiunit. После этого наша строка uses должна выглядеть так:

uses AboutUnit, NonModalUnit;

Если не хотите подключать эту форму вручную, то выберите из меню File (Файл) пункт Use Unit (Использовать модуль) и выберите в появившемся окне имя модуля для подключения.

 

Все. Модуль подключен. Теперь можно его использовать. Создадим обработчик события для пункта меню Сохранить и напишем в нем следующее:

NonModalForm.Show ;

Здесь мы отображаем форму NonModaiForm как немодальное окно. Это значит, что если вы запустите программу и выберете из меню пункт Сохранить, то увиди­те окно новой формы и сможете спокойно переключаться между главной формой и NonModaiForm без каких-либо проблем.

Впоследствии мы еще очень часто будем использовать оба типа окон и вы по­знакомитесь с их работой более подробно.

 

dle

Помоги проекту! Расскажи друзьям об этом сайте: