RSS    

   Реферат: Turbo Vision

программах.

                    Окна (tWindow) в Turbo Vision

     Окном в TurboVision называется отображаемый объект-группа,  имею-

щий специальную  рамку и который может иметь средства прокрутки (скро-

ллинга) не умещающейся в окне информации.В него можно поместить инфор-

мацию.Как правило,  в  программе используется не окно типа tWindow,  а

его потомок с переопределенными методами.

     В дополнение  к параметрам объекта tGroup окно обладает рядом до-

полнительных параметров, отметим два : флаги окна Flags и используемая

палитра Pallete.Назначение флагов параметра Flags,  и константы, соот-

ветствующие единице в соответствующем разряде параметра Flags  следую-

щие :

     0-й бит (wfMove) - возможность перемещения окна по полю его  вла-

                        дельца

     1-й бит (wfGrow) - возможность изменения размеров окна.

     2-й бит (wfClose) - наличие пиктограммы закрытия окна.

     3-й бит (wfZoom) - наличие пиктограммы распахивания окна.

     Параметр Pallete определяет тип используемой палитры окна и может

принимать одно из трех следующих значений :

     wpBlueWindow = 0 - синяя палитра окна;

     wpCyanWindow = 1 - голубая палитра окна;

     wpGrayWindow = 2 - серая палитра окна.

     Как правило,  синяя  палитра  - для окон,  серая - для диалоговых

окон, а голубая - для вспомогательных окон.

     Инициализируется окно параметром Init :

     constructor tWindow.Init(var Bounds: tRect;

                             ATitle: tTitleStr; ANumber: Integer);

где  Bounds - размеры окна;

     ATitle - имя окна размером до 80 символов;

     ANumber - номер окна.

     После инициализации устанавливаются значения параметров.

     Характерной особенностью окна и  его  потомков  является  наличие

рамки -  специального отображаемого объекта,  помещаемого в окно.Таким

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

декоративного значения  несет  на себе еще дополнительную информацию о

окне.

     Вид рамки  окна  меняется в зависимости от его состояния.Активное

окно обрамлено двойной рамкой.

     В левой  части верхней линии рамки располагается пиктограмма зак-

рытия окна.При подведении курсора мыши к этой  пиктограмме  и  нажатии

левой клавиши окно закрывается.

     В средней части верхней линии рамки располагается имя окна, зада-

ваемое при его инициализации.

     В правой части верхней линии рамки находится пиктограмма распахи-

вания окна "стрелка вверх" до полного размера группы,  в которую вклю-

чено окно,Распахивание также осуществляется с помощью мыши.После  рас-

пахивания окна  пиктограмма  изменит  свой  вид  - "двустороняя стрел-

ка".Чтобы восстановить исходные размеры окна, следует повторно подвес-

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

следует поместить курсор мыши на верхнюю линию рамки окна и дважды на-

жать клавишу.

     Правый нижний угол рамки может быть таким же, как и все другие, а

может быть  изображен  одинарной линией даже в случае активного окна.В

этом случае с помощью мыши можно изменять размеры окна.Для этого  кур-

сор мыши поместить на этот угол,  нажать на клавишу и, не отпуская ее,

переместить мышь в нужном направлении,  а при достижении окном требуе-

мых размеров, отпустить.Минимальные размеры окна - 16 позиций по гори-

зонтали и 6 строк по вертикали.Эти ограничения можно  изменить  с  по-

мощью метода SizeLimits :

     procedure'tView.SizeLimits(var Min, Max: tPoint); virtual;

     Верхняя линия  позволяет в ряде случаев с помощью мыши перемещать

окно по полю его владельца.

     Наличие или отсутствие у окна этих возможностей зависит от  уста-

новленных флагов параметра Flags.

     При работе с окном его следует сначала  создать  и  инициализиро-

вать.При этом  создать  необходимые  компоненты (кроме рамки,  которая

создается автоматически) и поместить их в окно.

     Далее окно следует поместить в рабочую область.Как правило,  окно

используется в немодальном режиме, тогда его помещают при помощи мето-

да InsertWindow, а если окно модальное - при помощи метода ExecView.

     Как правило,  для окна следует переопределить метод обработки со-

бытий HandlEvent, где необходимо предусмотреть обработку предназначен-

ных для окна событий.

     Перед завершением  работы  следует снять с окна модальность с по-

мощью метода EndModal.

     Если окно содержит выделенный элемент, а нужно сделать выделенным

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

элементу и  нажав  клавишу,  либо  с  помощью  клавиши  клавиатуры Tab

(или Shift+Tab),  при этом нажатие  Tab выделит  следующий в Z-порядке

элемент, а Shift+Tab - предыдущий.

                     Элементы окон в Turbo Vision

     В качестве стандартных элементов окон Turbo Vision можно  исполь-

зовать поля скроллинга (тип Scroller), предназначенные для отображения

не умещающейся на экране информации и ее просмотра, текстовые элементы

буферированной информации  (тип  tTewtDevice),  текстовые элементы для

пассивных терминалов (тип tTerminal) наподобие текстовых файлов и  ли-

нейки скроллинга.В окне можно помещать также потомки перечисленных вы-

ше стандартных элементов.

                     Поле скроллинга  (tScroller)

     Поле скроллинга  предназначено для размещения в нем текстовой ин-

формации, которую необходимо вывести в окно,  и  которая  возможно  не

уменьшается целиком в поле окна.

     При инициализации поля скроллинга следует задать его размеры, ли-

нейки горизонтального и вертикального скроллинга :

     constructor tScroller.Init(var Bounds: tRect;

                            AHScrollBar, AVScrollBar: pScrollBar);

где Bounds - размеры поля;

    AHScrollBar, AVScrollBar  -  указатели  на вертикальную и горизон-

тальную линейку скроллинга.

     После инициализации   устанавливаются  значения  параметров.Кроме

этого, при инициализации потомка tScroller могут быть заданы параметры

поля скроллинга,  в частности максимальный горизонтальный и вертикаль-

ный размер текстовой информации (размер строк и число строк), размеща-

емой в поле скроллинга.

     Следует также переопределить метод Draw  объекта  tScroller   для

того, чтобы  наполнить поле скроллинга соответствующей информацией.Для

этого необходимо в начале определить,  какая часть  информации  должна

быть отображена (исходя из текущего состояния линеек), затем сформиро-

вать строки, которые необходимо вывести на экран и, наконец, поместить

сформированные строки в поле скроллинга, с атрибутами цвета.

             Текстовый элемент буферированной информации

     Текстовый элемент буферированной информации (тип tTextDevice) яв-

ляется потомком поля скроллинга и отличается от своего предка наличием

двух абстрактных методов,  которые читают из некоторого текстового бу-

фера и записывают в текстовый буфер отображаемую информацию.

              Текстовый элемент для пассивного терминала

     Текстовый элемент  для  пассивного  терминала   (тип   tTerminal)

является наследником  объекта tTextDevice и предназначен для отображе-

ния в поле скроллинга информации от пассивного терминала,  чаще  всего

из текстового файла этого терминала.Под пассивным терминалом здесь по-

нимается терминал,  хранящий информацию,  но  не  имеющий  собственных

средств редактирования информации и управления экраном.

     Инициализируется текстовый элемент для пассивного терминала конс-

труктором Init :

     constructor tTerminal.Init(var Bounds: tRect;

         AHScrollBar, AVScrollBar: pScrollBar; ABufSize: Word);

где Bounds - размеры поля;

    AHScrollBar, AVScrollBar  -  указатели  на вертикальную и горизон-

тальную линейку скроллинга;

    ABufSize - размер буфера терминала в байтах.

     Во время инициализации создается элемент с указанными  параметра-

ми, а также буфер для передачи информации размером ABufSize.

                   Линейка скроллинга (tScrollBar)

     Линейка скроллинга  предназначена  для  фиксации места нахождения

отображаемой на экране в данный момент порции информации во всем  объ-

еме отображаемой  информации.Линейка  представляет собой либо горизон-

тальную полосу, либо вертикальную.Полоса оканчивается двумя стрелками,

а в средней части расположен ползунок,  указывающий относительное рас-

положение отображаемой порции информации.

     Используя этот ползунок, можно быстро переместиться в любое место

отображаемой информации.Для этого необходимо подвести  к  нему  курсор

мыши, нажать клавишу мыши и,  не отпуская ее, отбуксировать ползунок в

нужное место линейки скроллинга.Если курсор мыши поместить не на  пол-

зунок, а в другое место линейки и нажать клавишу мыши, будет отображе-

на следующая страница информации,  находящаяся в соответствующем  нап-

равлении.Если курсор  мыши  поместить  на завершающую стрелку и нажать

клавишу мыши,  будет осуществлено перемещение на один шаг в  соответс-

твующую сторону.

     5 параметров объекта tScrollBar :

     Min, Max - определяют миним.  и максим.  значение номера текущего

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.