Реферат: 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