Главная » Статьи » Основные статьи сайта |
Чтобы облегчить создание пользовательских интерфейсов, в систему Delphi включены шаблоны приложений MDI и SDI. Рассмотрим использование этих шаблонов. Для того чтобы создать готовый шаблон, следует выполнить команду File/ New/ Other и на странице 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; Нравится | |
Просмотров: 6401
| Теги: |
Другие статьи
|
|
|
|
Всего комментариев: 0 | |