292______________________________________________Глава 4

Текст документа 3                               '•

; Текст документа 1   Гекст документа 2   Текст документа 3 ||

:                                                                       |                                                                          ;                                                                          :|

•"•       ^-.^^^^aiiva^^^

Т^КСТД. ••;:;. ЦОБ06                              :::::'"::'                                                             ;

.^;'':: J^aciMal

|1?;:;.У:г1оояа'эчить по горизонтали
||i:|:|'^ynoCrfiflo4Hrb'nt^^^rn<aAH . ...
"^ Упоряпочигь-змэчии

^ .[Документ!,            . ;::

^"^^зйзд^внг ?          -;^й

fejre^y,    fe|g

Рис. 4.21

Пример простого приложения MDI: многооконный редактор в режимах упорядочивания
окон каскадом (а), по вертикали (б) и с развернутым окном документа (в)

Хороший стиль программирования —•————————————————————— ,

Меню Окно должно завершаться разделами, содержащими список открытых окон (см. |
рис. 4.21 в). Как это сделать - рассказано в главе 3 в разделе 3.4.1 и будет повторено в рас- «
сматриваемом примере.

' Для простоты построим дочерние окна с использованием компонентов Memo и I
не будем тратить время на разработку сервиса, необходимого в реальных редакто
pax. Более серьезный пример приведен на рис. 4.1 и имеется на прилагаемом к
книге диске.                                                             |
Начнем с построения формы окна документа.                            |

1. Откройте в C++Builder новое приложение.                              |

2. Назовите открывшуюся форму FDoc.

3. Разместите на форме компонент Memol типа TMemo. Его свойство Align за-
дайте равным alClient, чтобы окно редактирования заняло всю площадь окна.
Сотрите текст, появившийся в Memol (свойство Lines).                    J

4. Разместите на форме по одному компоненту типов TOpenDialog и TSaveDialog |
(см. раздел 3.6.2). Задайте в обоих диалогах свойства DefaultExt равными txt, 1