294________________________________________________Глава 4

присвоить значение Grouplndex, большее, чем 0, соответствующий разделам до-
чернего меню.

13. Во всех введенных разделах меню Окно установите свойство Grouplndex рав-
ным 1.

14. Запишите'обработчик события OnClick для раздела меню Новое (MNew). Этот
обработчик может иметь вид, уже рассмотренный в предыдущем разделе:

void _fastcall TFMDI::MNewClick(TObject *Sender)
(

TFDoc* TF = new TFDoc(this);

if (!TF) return;

TF->Caption = "Документ " + IntToStr(MDIChildCount);

TF->Show() ;

}

15. Внесите операторы в обработчики событий OnClick для остальных разделов
меню. Для раздела Каскад:

Cascade() ;

Для раздела Упорядочить по горизонтали:

TileMode = tbHorizontal;

Tile () ;

Для раздела Упорядочить по вертикали:

TileMode = tbVertical;

Tiled ;

Для раздела Упорядочить значки:

Arrangelcons() ;

На этом проектирование многооконного редактора завершено. Можете сохра-
нить проект и опробовать приложение в работе (см. рис. 4.21). Посмотрите, как ве-
дет себя приложение при создании нового окна документа, если размеры родитель-
ского окна не достаточно велики. Проверьте, что было бы, если бы вы не изменили
свойство Grouplndex в меню родительского окна или если форма документов име-
ла бы свойство FormStyle равное fsNormal. Вообще поэкспериментируйте с этим
приложением, чтобы уяснить все особенности приложений MDI.

4.7.7 Объект Screen и приложения, работающие
с нескольким мониторами

В приложении C++Builder автоматически создается глобальный объект Scre-
en (экран) типа TScreen, свойства которого определяются из информации Win-
dows о мониторе, на котором запускается приложение. Вы можете в любом прило-
жении использовать, например, такие свойства объекта Screen, как Height — вы-
сота экрана и Width — его ширина. Это, в частности, может, потребоваться, если
вы задаете значение свойства своих форм Position таким, что размеры форм оста-
ются постоянными. Так как вы используете в процессе проектирования один тип
монитора, а приложение в дальнейшем может работать на мониторе другого типа,
то не исключено, например, что ваша форма не поместится на экране или наобо-
рот — будет слишком маленького размера для данного монитора. Чтобы избежать
этих неприятностей, можно автоматически масштабировать свою форму, вводя,
например, в обработчик ее события OnCreate код:

Width = Screen->Width / 2;

Height = Screen-height / 2;

Этот код задает размеры формы равными половине соответствующих размеров
экрана.