- •Основы визуального программирования в среде Delphi 7.0
- •2. МеткаLabel(страницаStandard)
- •3. Окно редактирования Edit (страница Standard)
- •4. Кнопки Button, BitBtn (страницы Standard, Additional)
- •5. Компонент CheckBox(страница Standard)
- •6. Компоненты GroupBox, RadioButton (страница Standard)
- •7. Компонент ComboBox(страница Standard)
- •Пример выполнения задания
- •Практические задания
- •Занятие №2
- •2. Компонент PageControl (страница Win32)
- •3. КомпонентDateTimePicker(страницаWin32)
- •4. КомпонентTrackBar(страницаWin32)
- •5. Компонент UpDown (страница Win32)
- •Практические задания
- •Занятие №3
- •2. Создание меню с помощью мастера
- •3. Компоненты MainMenuи РоpupMenu(панельStandart)
- •4. Проектирование меню с помощью Конструктора Меню
- •5. Организация отклика на вызов пункта меню
- •6. Диалоги как модальные формы
- •7. Создание диалогового окна с помощью шаблона
- •8. Вызов диалогового окна пунктом меню
- •9. Прием введенных значений из диалогового окна в основное окно приложения
- •Практические задания
- •Занятие №4
- •2. Компонент TreeView(страницаWin32)
- •3. Компонент ListView(страницаWin32)
- •4. Компонент OpenDialog (страница Dialogs)
- •5. Компонент FontDialog (страница Dialogs)
- •6. Компонент ColorDialog(страницаDialogs)
- •Практические задания
- •Занятие №5 Подготовка справочной системы Цель занятия
- •Методические указания
- •1. Создание текстового файла разделов (*.Rtf)
- •Сноска #
- •Сноска к (заглавная латинская буква)
- •2. Создание файла содержания (*.Cnt)
- •3. Создание файла проекта
- •4. Подключение справочной системы к приложению
- •Задание
- •Оглавление
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 была нажата кнопка Отмена'
…
Таким образом, программа, вызвавшая модальную форму, может узнать, что сделал пользователь, работая с этой формой, например, по какой он кнопке щелкнул.