BorlanD Russian Сommunity

Создание многодокументного интерфейса. Многодокументный (MDI) интерфейс - это когда главное окно вашей программы содержит внутри себя несколько дочерних окон. Типичный пример - это Visual Studio от Microsoft или Word прежних версий.

Рассмотрим, как это делается. Создайте простое приложение на Delphi. У появившейся главной формы приложения установите значение свойства FormStyle в fsMDIForm.

Добавьте в проект еще одну форму. Для этого нажмите на кнопку New Form на панели инструментов View.

Для добавленной формы установите значение этого же свойства FormStyle в fsMDIChild.

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

Сейчас у нас дочернее окно показывается сразу после запуска нашей программы. Посмотрим, как можно от этого избавиться. Для этого вызываем окно настроек проекта (меню Project -> Options) и там, на вкладке Forms перекидываем нашу вторую форму Form2 из левой части (которая содержит все формы, создаваемые при запуске приложения) в правую.

Теперь при запуске нашей программы дочерняя форма автоматически создаваться не будет. Это значит, что нам надо написать самим код, который будет её создавать (например, по выбору пункта меню).

Для этого добавьте в нашу программу главное меню, в котором создайте пункт Form и у него подпункт Add.

 

В обработчике для данного подпункта напишите следующий код:

 

procedure TForm1.Add1Click(Sender: TObject);

begin

MDIChildForm := TForm2.Create(Owner);

end;

 

Разумеется, переменная MDIChildForm типа TForm2 должна быть объявлена (в классе главной формы):

 

var

            ...

            MDIChildForm: TForm2;

 

Кроме того, надо в секции uses класса главной формы добавить ссылку на Unit2:

 

uses

  .         ..

            Dialogs, Menus, Unit2;

 

Теперь каждый раз при выборе пункта меню Add у формы будет создаваться дочернее окно.

Всё на этом урок закончен как и вся серия уроков. Ждем ваших предложения по дальнейшему развитию проекта.
Просмотров: 2203 | Категория: Delphi 7 | Дата: 11.05.2008