Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование Delphi.doc
Скачиваний:
69
Добавлен:
05.06.2015
Размер:
603.65 Кб
Скачать

5. Организация отклика на вызов пункта меню

Основное событие раздела — OnClick, возникающее при щелчке пользователя на разделе или при нажатии «горячих» клавиш. В обработчик этого события можно перейти, используя вкладку Events Инспектора Объектов в процессе конструирования меню или щелкнув мышью по разделу меню на форме (обратите внимание – на форме, а не в Конструкторе Меню).

6. Диалоги как модальные формы

Диалоговое окно представляет собой отдельно проектируемую форму. Каждая форма представлена в программе отдельным модулем с заголовочным файлом. Для возможности вызова диалога из основной формы необходимо подключить заголовочный модуль диалога в модуль основной формы с помощью директивы препроцессора include.

  • Например, если главная форма определяется модулем «Main.pas», а диалоговая – «MyDialog.pas», то необходимо в файл «Main.pas» добавить строку:

uses MyDialog;

Диалоговая форма должна появляться и закрываться во время выполнения программы. Для экономии памяти и меньшей требовательности к ресурсам, целесообразно переместить эту форму из автосоздаваемых (AutoCreateForms) в доступные (Availiable) при помощи пункта меню Project/options/forms. Для вызова требуемой формы в программе следует в вызывающей процедуре объявить переменную класса формы, создать ее, а затем отображать:

uses MyDialog; //подключение модуля диалоговой формы

procedure TMainForm.ShowModalFormButtonClick (Sender : TObject);

var

MyNewForm : TFormDialog; // определение переменной класса модальной формы

Begin

MyNewForm := TFormDialog.Create(application); // создание формы диалога

End;

В программе можно предусмотреть изменение компонентов формы в зависимости от поставленных задач, например изменение заголовка формы после выбора пользователем какого-либо режима работы. Форму можно сделать видимой методами Show и ShowModal, например,

MyNewForm.Show;

Метод ShowModal открывает форму как модальную. Открытие форм как модальных используется в большинстве диалоговых окон. Модальная форма приостанавливает выполнение вызвавшей ее процедуры до тех пор, пока пользователь не закроет эту форму. Модальная форма также не позволяет пользователю переключить фокус курсором мыши на другие формы данного приложения, пока форма не будет закрыта. Так что пользователь должен выполнить предложенные ему действия прежде, чем продолжить работу. Модальной может быть сделана любая форма, если она делается видимой методом ShowModal. Если та же самая форма делается видимой методом Show, то она не будет модальной.

Поведение модальной формы определяется ее основным свойством ModalResult. Это свойство доступно только во время выполнения приложения. При открытии формы методом ShowModal сначала свойство ModalResult=mrNone=0. Как только при обработке каких-то событий на форме свойству ModalResult будет присвоено положительное значение от 1=mrOK до 8=mrAll, модальная форма закроется.

Если на модальной форме размещена кнопка, то при ее нажатии происходит присваивание свойству ModalResult формы значения свойства ModalResult кнопки. Значение свойства ModalResult кнопки можно задать в процессе проектирования программы, выбрав его из выпадающего списка свойств в Инспекторе Объектов. Значение свойства ModalResult формы можно будет прочитать после ее закрытия.

  • Пример:

MyNewForm.ShowModal;

if (MyNewForm.ModalResult = mrCancel)

Edit1.Text := 'В окне Form2 была нажата кнопка Отмена'

Таким образом, программа, вызвавшая модальную форму, может узнать, что сделал пользователь, работая с этой формой, например, по какой он кнопке щелкнул.