Показ формы как обычного окна 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Показ формы как обычного окна



Чтобы форма отображалась как обычное окно, проще всего записать в свойство

Visible формы Form2 значение True.

procedure TMyForm.Button3Click(Sender: TObject);

begin

Forra2.Visible:= true;

end;

Если теперь выполнить компиляцию проекта, то система Delphi 7 сообщит об ошибке:

идентификатор Form2 в модуле Unitl неизвестен. Одновременно система предложит

включить в список подключаемых модулей новый модуль Unit2, где, по предполо-

жению системы, находится описание соответствующей переменной (рис 2.14).

Nformation

Ф

Toaddil?

£eT 'Cancel

Puc. 2.14, Система предлагает включить в список подключаемых модулей новый модуль Unit2

В данном случае это действие оправдано, поэтому ответить надо Yes (Да) и выполнить

компиляцию повторно — ошибок уже не будет. Однако лучше всего не забывать

указывать ссылки на новые подключаемые к проекту модули самостоятельно.

Теперь, после запуска программы и щелчка на кнопке Окно на экране возникнет

новое пустое окно (форма Form2). Она связана с родительским окном (главной формой

MyForm); между ними можно свободно переключаться, а при закрытии главного

окна автоматически закроются и все вспомогательные формы (но не наоборот!).

Управление проектом 1 35

Если закрыть форму Form2, реально произойдет изменение значения ее свойства

Visible с True на False, поэтому при щелчке на кнопке Окно форма появится опять.

Если щелкнуть на кнопке Окно, когда форма Form2 видима, ничего не изменится.

Вместо оператора присваивания для показа формы лучше применять ее метод Show.

procedure TMyForm.Button3Click(Sender: TObject);

Begin

Form2. Show,-

end;

Он хорош тем, что показывает форму, перемещает ее на передний план экрана и

делает активной.

Показ формы как модального окна

Между появившейся на экране формой Form2 и главным окном (MyForm), а также

Между другими подчиненными формами проекта, если бы они тоже были созданы

И показаны, можно переключаться произвольным способом. Такой подход не всегда

Удобен, потому что не дает пользователю сосредоточиться на конкретном действии

И позволяет, не закончив работу в одном окне, выполнять новые действия в другом

Окне. Подобный многооконный принцип при создании программ себя не оправды-

Вает, так как требует от разработчика больших усилий по непрерывной координа-

Ции состояний множества окон и только усложняет общение с человеком. Сегодня

Он применяется в основном в сложных системах, наподобие систем разработки типа

Delphi 7, где одним окном не обойтись. А вспомогательные формы в обычных при-

Кладных программах используются, как правило, для создания диалоговых окон, с

Которых невозможно переключиться на другие окна приложения, пока они не будут

закрыты (такой режим работы окна еще называется модальным). Модальные окна

хорошо подходят, в частности, для задания всевозможных настроек, выполнения

Ввода промежуточных значений, отображения результатов и других операций.

Чтобы вызвать форму в модальном режиме, надо использовать метод ShowModal.

Procedure TMyForm.Button3Click(Sender: TObject),-

Begin

Form2.ShowModal;

end;

Теперь, когда после щелчка на кнопке Окно на переднем плане появится форма

Form2, переключиться с нее на главное окно не удастся, пока она не будет закрыта.

Переключаться на любые другие приложения Windows, конечно, можно без ограни-

Чений.

К оформлению модальных окон предъявляется набор негласных, но практически

не имеющих исключений требований.

Диалоговое окно не должно позволять менять свои размеры. Для этого в свой-

Стве BorderStyle (Стиль границы) надо выбрать любое значение, не допускающее

Изменения размера.

Урок 2. Основы программирования в среде Delphi 7

Таблица 2.15. Значения свойства BorderStyle

Значение Вид границы окна

BsDialog Размер окна менять не разрешается. Вид границ — как у стандартных

Диалоговых окон Window?



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 187; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.200.196.114 (0.002 с.)