Привет, Гость! Регистрация RSS
Четверг, 21.11.2024
Главная » Статьи » Основные статьи сайта

Использование приложений MDI и SDI

Чтобы облегчить создание пользовательских интерфейсов, в систему Delphi включе­ны шаблоны приложений MDI и SDI.   Рассмотрим использование этих шаблонов. Для того чтобы создать готовый  шаблон, следует выполнить команду  FileNewOther  и на странице  Projects  выбрать нужную пиктограмму (MDI Application  или SDI Application).

1.     Создание и использование SDI

В качестве документа рассматривается центральный объект, с которым работает приложение. Например, для текстового редактора документом является текстовый файл, а для графического редактора – файл с изображением.

Интерфейс SDI  может работать только с одним объектом в конкретный момент времени.  Чтобы открыть другой файл, пользователь должен закрыть предыдущий. Примерами приложений SDI служат программы Notepad  и WordPad.

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

Файлы модулей кода фактически являются    объявлениями классов для определяемой формы, а в главном файле приложения выполняется создание объектов на основе объявленных в модулях кода классах и создание главного окна приложения.

Главной формой является форма SDIApplication. Форма About отображается при выполнении команды меню Help/About.

На рис. представлены шаблоны форм. 

   


2.     Создание и использование MDI

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

Интерфейс MDIпредставляет собой приложение, в котором многие формы (или окна) могут быть открыты внутри одной контейнерной формы (или контейнерного окна). Контейнерная форма (окно) на­зывается родительской. Она предоставляет рабочее пространство для всех дочерних форм (окон), открытых в приложении. Во многих программах Windows форма MDI использу­ется в качестве главной формы. Например, в программе MicrosoftExcel несколько рабо­чих журналов могут быть открыты одновременно, причем каждый из них выводится в от­дельном дочернем окне. Приложения подобного типа используются для создания программ типа графических или текстовых редакторов.

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

Шаблон MDI-приложения содержит кнопки для изменения расположения окон,  а в меню Windows добавляются имена всех открытых документов.

Для главной формы приложения свойство FormStyle  установлено  равным  - fsMDIForm, для дочерней формы -  fsMDIChild.  Дочерняя форма фактически является обычной формой, в которую помещен один объект типа Tmemo. Могут быть дочерние формы разных типов, например, одна  -  для просмотра  текста, другая – для изображений. 

Существует ряд правил для оформления главного и дочерних окон:

-   В главном окне размещаются обычно только такие элементы управления, как меню, панели инструментов и строка состояния.

-   Остальная клиентская область предназначается для размещения дочерних окон.

-   Дочерние окна не имеют панелей инструментов и строки состояния.

- Объект TForm имеет несколько свойств, специфичных для MDI-приложений.

Свойство ActiveMDIChild (тип TForm) возвращает дочер­ний объект TForm, имеющий в текущий момент времени фокус ввода. Оно полезно, когда родительская форма содержит панель инструментов или меню, команды которых распространяются на открытую дочернюю форму.

Свойство MDIChildren [I: Integer] (тип TForm) яв­ляется массивом, содержащим список созданных дочерних форм. Окна в данном массиве нумеруются, начиная с нуля, в зависимо­сти от их текущего положения на экране. Нумерация изменяется после каждого переупорядочения окон.

Свойство MDIChildCount возвращает количество элементов в массиве MDIChildren.

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

 -         Особенность дочерних окон – при попытке ее закрытия путем нажатия кнопки закрытия в верхнем правом углу, она не закрывается, а минимизируется, т.к. по умолчанию для всех дочерних окон параметр Action имеет значение caMinimize. Чтобы избежать этого, необходимо создать обработчик события OnClose, в котором  параметру Actionприсвоить значение caFree. 

 procedure TfrmChildForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

  Action := caFree;

end;                   

Нравится
Категория: Основные статьи сайта | Добавил: Dark_Green (27.10.2012)
Просмотров: 6401 | Теги: SDI Application, SDI, MDI, MDI Application | Рейтинг: 0.0/0

Другие статьи
»
Как получить текущий день, месяц и год? Модуль DateUtils (0)
»
Функция Pars(); (1)
»
Строка состояния (0)
»
Метод MessageBox (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]