Турбо Паскаль 6.0

       

Подэлементы и дерево видимых элементов.


Как сказано раньше, видимый элемент TApplication владеет и управляет тремя подэлементами, созданными им. Вы можете представить эту взаимосвязь как формирование дерева видимых элементов. Application - это ствол, а MenuBar, DeskTop и StatusLine формируют ветви, как показано на рис. 4.8.

Рис. 4.8. Основное дерево видимых элементов Turbo Vision.

+-------------+ | Application | +--+--+---+---+ +--------+ | +-------+ +---+-----++----+----++-----+------+ | MenuBar DeskTop StatusLine | +---------++---------++------------+

Запомните, что взаимосвязи, показанные на рис. 4.8. - это не иерархия объектов, а модель структуры данных. Связи отражают принадлежность, а не наследование. В типичной программе, когда пользователь отмечает мышкой или использует клавиатуру, он создает новые видимые элементы. Эти видимые элементы будут появляться на панели экрана, формируя новые ветви дерева. Важно понимать взаимосвязи между владельцами и подэлементами и как появление и поведение видимого элемента зависит от того, кто владеет видимым элементом. Рассмотрим пример. Пусть пользователь отмечает элемент меню, который вызывает окно просмотра файла. Окно просмотра файла будет видимым элементом. Turbo Vision создает окно и присоединяет его к панели экрана. Окно будет владеть рядом подэлементов: TFrame - рамка окна, TScroller - содержит массив текста и TScrollBar. Когда окно вызывается, оно создает, владеет и управляет подэлементами. К Вашей растущей программе подключены новые видимые элементы, как показано на рис. 4.9.

Рис. 4.9. Панель экрана с просмотром файлов.

+------------------------------------------------+ | Строка меню | +------------------------------------------------| |************************************************| |**+=[ю]=== File Viewer Window ==1=[]=+ ********| |**| ********| |**| # ********| |**| File text # ********| |**| # ********| |**| ю ********| |**| # ********| |**| ********| |**+==========#ю###############======+ ********| |************************************************| +------------------------------------------------| | Строка статусa | +------------------------------------------------+


Дерево видимых элементов становится более сложным, как показано на рис. 4.10.

Рис. 4.10. Дерево видимых элементов с просмотром файла.

+-------------+ | Application | +--+--+---+---+ +--------+ | +-------+ +---+-----++----+----++-----+------+ | MenuBar DeskTop StatusLine | +---------++----+----++------------+ +----+---+ | Window | ++-+--+-++ +-----+ | | +------+ +----+--+ | | +---+------+ | Frame | | | | Scroller | +-------+ | | +----------+ +--+ +--+ +---------+--+ +--+---------+ | Scroll Bar | | Scroll Bar | +------------+ +------------+

Теперь предположим, что пользователь отметил тот же элемент меню и создал другое окно просмотра файлов. Turbo Vision создает второе окно и присоединяет его к панели экрана, как показано на рис. 4.11.

Рис. 4.11. Панель экрана с просмотром файла.

+----------------------------------------------------+ | Строка меню | +----------------------------------------------------| |****************************************************| |**+======= File Viewer Window ==1=====+*************| |**| *************| |**| +=[ю]=== File Viewer Window ==2=[]=+***| |**| File te| ***| |**| | #***| |**| | File text #***| |**| | #***| |**| | ю***| |**+=========| #***| |************| ***| |************+==========#ю###############======+***| |****************************************************| +----------------------------------------------------| | Строка статусa | +----------------------------------------------------+

Дерево видимых элементов становится еще более сложным, как показано на рис. 4.12.

Рис. 4.12. Дерево видимых элементов с просмотром файла.

+-------------+ | Application | +--+--+---+---+ +--------+ | +-------+ +---+-----++----+----++-----+------+ | MenuBar DeskTop StatusLine | +---------++--+---+--++------------+ +-----------+ +-----------------+ +----+---+ +----+---+ | Window | | Window | ++-+--+-++ ++-+--+-++ +-----+ | | +-----+ +-----+ | | +-----+ +----+--+ | | +---+------+ +----+--+ | | +---+------+ | Frame | | | | Scroller | | Frame | | | | Scroller | +-------+ | | +----------+ +-------+ | | +----------+ +--+ +--+ +--+ +--+ +---------+--+ +--+---------+ +---------+--+ +--+---------+ | Scroll Bar | | Scroll Bar | | Scroll Bar | | Scroll Bar | +------------+ +------------+ +------------+ +------------+



Как Вы увидите в главе 5, управление программы проходит по дереву видимых элементов. В предыдущем примере предположим, что Вы отметили полосу скроллинга в окне просмотра файла. Как сделать, чтобы это действие обрабатывалось в нужном месте? Программа Application видит отметку мышкой, обнаруживает, что она находится в области, управляемой панелью экрана и передает ее в объект "панель экрана". Панель экрана видит, что отметка внутри области, управляемой просмотром файла и передает ее в этот видимый элемент. Просмотр файла видит, что отметка была в полосе скроллинга и позволяет видимому элементу "полоса скроллинга" обработать отметку, генерируя соответствующий отклик. Действительный механизм этой обработки не важен в данный момент. Сейчас важно понять как связаны видимые элементы. Вне зависимости от сложности структуры, все видимые элементы связаны с объектом Вашей программы. (Обработка событий объяснена в главе 5). Если пользователь отметил закрывающую кнопку во втором просмотре файла, или элемент меню Close Window, второй просмотр файла закрывается. Turbo Vision отключает его в дереве видимых элементов и уничтожает. Окно будет освобождать все подэлементы, а затем уничтожает себя. Вероятно пользователь будет удалять видимые элементы, пока не достигнет начальной позиции и укажет, что он закочил работу нажав Alt-X или выбрав Exit из меню. TApplication удаляет свои подэлементы, а затем удаляет себя.


Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий