Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методическое пособие для самостоятельных работ.doc
Скачиваний:
22
Добавлен:
16.11.2019
Размер:
2.89 Mб
Скачать

Глава 4. Многодокументный и однодокументный интерфейсы (mdi и sdi)

4.1. Mdi и sdi: сравнение

При создании больших и сложных приложений трудно разместить все необходимые поля ввода/вывода и элементы управления на одном окне. Кроме того, всегда необходимо обеспечить удобство использования программы, обозримость и легкость понимания ее входных и выходных форм. При разработке программных комплексов, предназначенных для широкой эксплуатации, целесообразно, чтобы формы ввода/вывода по возможности совпадали по расположению информации с документами, с которыми работали при традиционной технологии, до перехода на ЭВМ. В Delphi можно создать приложения с многими окнами. В зависимости от того, как организовано управление окнами, различают две разновидности приложений с многими окнами:

  • многодокументный интерфейс – multiple document interface (MDI),

  • однодокументный интерфейс – single document interface (SDI).

Часто их называют соответственно MDI– и SDI–приложениями.

В MDI–приложениях имеется одно главное окно с меню, другие окна являются подчиненными (их называют еще дочерними) и ими можно управлять из главного окна. Закрытие главного окна означает завершение работы программы. Подчиненные окна не имеют собственного меню, но меню главного окна может видоизменяться в зависимости от того, какое окно в данный момент активно. Рекомендуют разрабатывать MDI–приложения таким образом, чтобы в главном окне было только меню, а все остальные действия выполнялись в подчиненных окнах. Примерами MDI–приложений являются Word, Windows 3.1.

Название SDI–приложения может ввести в заблуждение: кажется, что там имеется только одно окно. На самом деле там тоже допускается большое число окон, но нет главного окна, из которого управлялись бы все остальные. Все окна независимы, они могут содержать и собственные меню. Все действия над окнами придется запрограммировать самому. Примером SDI–приложения является Delphi.

4.2. Разработка mdi—приложений

Приступим к разработке MDI–приложения, состоящего из главного окна, диалогового окна, информационного окна и окна ввода данных (окно вывода данных разрабатывается аналогично). Запустим Delphi, откроется пустая форма. Дадим ей имя и изменим в инспекторе объектов значение свойства FormStyle: выберем из выпадающего списка fsMDIForm – это означает, что созданная форма является главным окном будущего приложения. Напомним, что только одна форма приложения может быть главной.

4.2.1. Разработка главного и информационного окон

Главное окно содержит только меню, которое будет изменяться в зависимости от того, какое дочернее окно открыто. Принята следующая структура меню:

  • Самым левым является пункт File, включающий операции с файлами; самым нижним его подпунктом должен быть выход из программы (Exit, Quit).

  • Самым правым является пункт Help (контекстная подсказка), включающий подпункт About (информация о программе).

File

Help

Quit Alt+X

About

Ограничимся пока приведенными выше пунктами меню.

На этой стадии разработки приложения целесообразно сохранить созданное. Это делается, как всегда, через подпункты меню File, лучше всего через Save All. В Delphi каждому приложению соответствует так называемый проект, который содержит формы и программные модули. При их сохранении требуется дать имена проекту и каждому программному модулю и эти имена не должны совпадать. По умолчанию проекту присваивается имя Project1, а модулям Unit1, Unit2, . . . Под этими именами не следует сохранять свои разработки. Используем имена Okna для проекта и Okno1, Okno2, . . . для модулей.

Приступим к созданию информационного окна (окна About). В Delphi имеется галерея, содержащая заготовки для создания разных форм и целых приложений. Для работы с галереей в меню Delphi выберем пункт Сервис (Tools), затем подпункт База (Repository). В левом столбце появившейся таблицы выберем Forms. В результате в таблице заполняется правый столбец, там активизируем AboutBox, щелкаем курсором мыши в квадратике левее Новая форма (New Form) и закроем это окно нажатием OK. После этого в меню Delphi в пункте File выберем подпункт New Form – на экране появится заготовка окна About и инспектор объектов тоже будет соответствовать объекту AboutBox. Активизируем по очереди имеющиеся на нем пункты (Produсt Name, Version и т.д.) и меняем значения их свойств Caption, чтобы получить в окне требуемый текст. Все эти пункты относятся к типу Label, поэтому в качестве их значений можно использовать произвольный текст, в том числе и на русском языке. Можно менять и иконку, для этого активизируем ее, активизируем свойство Picture и с помощью диалогового окна выберем новую иконку, можно нарисовать и собственную.

После всего этого имеем две формы (главную и About) и два программных модуля: в Delphi каждой форме соответствует свой модуль. Для завершения создания информационного окна осталось обеспечить его открытие из меню главного окна и закрытие. Это очень просто. Переходим в главное окно, делаем двойной щелчок на пункте его меню About и в открывшуюся процедуру пишем одну строку:

procedure TForm1.About1Click(Sender: TObject);

begin

AboutBox.Show;

end;

После этого переходим к окну About, делаем двойной щелчок на кнопке ОК и в предложенное место пишем

procedure TAboutBox.OKButtonClick(Sender: TObject);

begin

Close;

end;

Переходим от окна About к его программному модулю и сохраним его под именем Okno2. Осталось сделать последнее. Модули разных форм независимы, но мы в модуле Okno1 ссылаемся на объект AboutBox, который принадлежит другому модулю. Откроем модуль Okno1, найдем в нем раздел описаний, точнее, оператор Uses и в перечень уже имеющихся в нем модулей добавим Okno2. После этого можно запустить наше приложение и убедиться, что два пункта меню работают.(рис.4.1.)

По мере возрастания сложности приложения путем добавления новых форм и модулей трудно следить за ними. В этом помогает менеджер проекта. Для его открытия необходимо открыть меню View и выбрать пункт Project Manager. Для перехода к нужным форме или модулю надо просто щелкать на названии.

Рис .4.1. Пример приложения «Разработка главного и информационного окон»