скачать рефераты
  RSS    

Меню

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

скачать рефераты

скачать рефератыРеферат: Turbo Vision

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

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

мощью метода 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 - определяют миним.  и максим.  значение номера текущего

элемента информации.

     ArStep - величина шага перемещения по информации в случае нажатия

клавиш Left,  Right,  Up,  Down или при нажатии клавиши мыши,  если ее

курсор находится на завершающей стрелке.

     PgStep - размер страницы, на которую происходит перемещение.

     Value -  текущий  элемент информации.Инициализация линейки скрол-

линга осуществляется конструктором Init :

     constructor tScrollBar.Init(var Bounds: tRect;

     где Bounds - область, выделенная под линейку скроллинга в коорди-

натах его владельца.

     Линейка скроллинга не может активизироваться,  так как у  нее  не

установлен флаг  ofSelectable  параметра  Options.Поэтому она не может

обычным образом реагировать на нажатие клавиш  клавиатуры.Чтобы  этого

не происходило,  следует  нарушить стандартный порядок обработки собы-

тий, установив флаг ofPostProcess параметра Options.

                           Диалоговое окно

     Диалоговое окно (тип tDialog) представляет специальный  тип  окна

(является потомком tWindow) и предназначено в первую очередь для ввода

значений параметров в программу.

     Так же  как  и  обычное окно,  диалоговое окно может использовать

один из трех видов палитры :

     dpBlueDialog = 0 - синяя палитра диал. окна;

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

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

     В отличие  от    обычного   окна       диалоговое    окно обычно

используется в модальном режиме.Инициализируется диалоговое окно конс-

труктором Init :

     constructor tDialog.Init(var Bounds: tRect;

                                               ATitle: tTitleStr);

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

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

     В отличие от обычного окна у диалогового окна стандартно нет воз-

можности изменять размеры, оно использует серую палитру и не имеет но-

мера.

     К другим особенностям диалогового окна можно отнести обработку им

клавиш Esc  и Enter.Если диалоговое окно находится в модальном режиме,

нажатие Esc закрывает окно без сохранения введенной информации.Нажатие

клавиши Enter  эквивалентно  нажатию  кнопки,  выбираемой по умолчанию

(закрывает окно с сохранением внесенных изменений).

     Для удобной  работы  с  диалоговым  окном  в Turbo Vision имеется

большое количество стандартных объектов,  которые можно использовать в

качестве элементов этого окна.

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

следующим образом.Сначала создать и инициализировать диалоговое  окно,

при этом  поместив  в него все его элементы.Затем подготовить исходные

данные для передачи диалоговому окну.

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

тода ExecuteDialog и осуществляется работа с ним.При завершении работы

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

изменений или без.Изменения, которые требуется сохранить, возвращаются

в том же параметре, в котором передавались исходные данные.

     Если окно используется в немодальном  режиме,  последовательность

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

                       Элементы диалоговых окон

     Возможно использование стандартных элементов или их потомков :

     - строки ввода;

     - метки;

     - протоколы;

     - селективные списки;

     - триггерные списки;

     - кнопки;

     - статические и параметрические тексты;

     - списки строк;

     - линейки скроллинга.

                             Строка ввода

     Строка ввода (тип tInputLine) предназначена для ввода в программу

символьной информации.Фактически строка ввода представляет собой прос-

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

тей.Основным элементом строки является буфер (строка,  в которую поме-

щаются все  вводимые  символы).Инициализируется  строка  ввода методом

Init :

     constructor tInputLine.Init(var Bounds: tRect;

                                               AMaxLen: Integer);

где  Bounds - размер поля строки ввода;

     AMaxLen - размер буфера.

     Высота поля строки ввода должна равняться единице.Ширина поля мо-

жет быть любой, но не менее 3.Размер буфера может иметь любое значение

до 255.После создания строки ввода  непосредственно  изменять  размеры

буфера нельзя.

     Так как строка ввода работает только с символьной информацией, то

перед вводом  в  нее какого-либо числа оно должно быть преобразовано в

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

преобразовано в двоичную.

                            Метка (tLabel)

     Метка всегда  связана с каким-либо другим элементом окна и предс-

тавляет собой текст,  поясняющий смысл объекта.Кроме этого,  с помощью

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

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

ней элемент.

     Конструктор метки имеет вид :

     constructor tLabel.Init(var Bounds: tRect;

                               const AText: string; ALink: pView);

где  Bounds - размер поля метки;

     AText - текст метки;

     ALink - указатель на объект, с которым связана метка.

     Метка располагается либо над объектом,  либо слева от него.Высота

поля метки равна единице.Если текст метки состоит из цифр и  латинских

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

~~.Такая буква на экране будет выделена особым цветом, а нажав клавишу

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

                               Протокол

     Протокол (тип tHistory) всегда связан со строкой ввода и предназ-

начен для  сохранения  в своем буфере вводимой в строку ввода информа-

ции.Для вызова ранее набираемой информации следует,  находясь в строке

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

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

кола, содержащее  вводимые  ранее строки в данную строку ввода.Следует

выбрать интересующую строку (клавиша мыши или клавиши Up и Down).Далее

дважды нажать клавишу мыши или нажать Enter.

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

     constructor tHistory.Init(var Bounds: tRect;

                             ALink: pInputLine; AHistoryID: Word);

где  Bounds - поле для размещения пиктограммы протокола;

     ALink - указатель на строку ввода, с которым связан протокол;

     AHistoryID - номер протокола -  число,  определяющее  данный  тип

протокола.

     Обычно протокол размещается за строкой ввода,  к которой он отно-

сится.Ширина поля должна равняться двум, высота - единице.

  Селективный (тип  tRadioButtons)  и триггерный ( тип tCheckBoxes)

                                списки

     Селективный и триггерный списки очень похожи,  так как у них есть

общий предок (tCluster), заключающий в себе общие свойства.

     Селективный список позволяет выбрать только один элемент из этого

списка.Количество элементов ограничено числом 65536.

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

тов (или ни одного),  однако при стандартном использовании число  эле-

ментов этого списка ограничено 16-ю.

     Оба списка инициализируются одним методом Init объекта tCluster :

     constructor tСluster.Init(var Bounds: tRect;

                                               AStrings: pSItem);

где  Bounds - поле, выделяемое под образ списка;

     AStrings - указатель на список информационных строк.

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

дя курсор к соответствующей строке и нажав клавишу,  либо клавиатурой,

используя клавиши направления.В триггерном  списке  при  использовании

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

пробела.

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

кую букву или цифру, поместив ее между ~~.Она будет выделена на экране

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

клавиши клавиатуры с этим символом.

                         Кнопка (тип tButton)

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

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

     Кнопка может иметь флаги,  находящиеся в параметре Flags при ини-

циализации :

     0-й бит (bfDefault) - кнопка, выбираемая по умолчанию.

     1-й бит (bfLeftJust) - текст кнопки выравнивается  по  ее  левому

             краю ( при отсутствии флага текст центрируется).

     2-й бит (bfBroadcast) - кнопка формирует сообщение вместо команды.

     3-й бит (bfGrabFocus)  - фокусирование кнопки при ее активизации

             мышью.

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

     constructor tButton.Init(var Bounds: tRect;

                    ATitle: tTitleStr; ACommand:Word;AFlags:Byte);

где  Bounds - поле, выделяемое под кнопку;

     ATitle - текст, размещаемый на кнопке;

     ACommand - код команды, связанной с кнопкой;

     AFlags - задаваемые флаги кнопки.

     Выделяемое под кнопку поле  должно  быть  достаточных  размеров,

чтобы в нем отобразилась вся кнопка с текстом и ее тень.Поэтому высоту

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

текста.

     Выбрать кнопку можно с помощью мыши,  подведя курсор и нажимая на

клавишу, либо с помощью клавиши Tab,  а затем клавиши Enter.При выборе

кнопки она формирует событие-команду с кодом команды,  который был за-

дан кнопке.В качестве параметра кнопка передает указатель на себя.

   Статический (tStaticText) и параметрический (tParamText) тексты

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

различной поясняющей информации.

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

     constructor tStaticText.Init(var Bounds: tRect;

                                             const AText: String);

     где  Bounds - поле, выделяемое под статический текст;

          AText - размещаемый текст.

     Поле, выделяемое  под статический текст,  должно быть достаточных

размеров, чтобы можно было расположить все слова текста.Текст  автома-

тически делится на слова и размещается в выделенном поле без переносов

внутри слов.

     Разновидностью статического   текста   является   параметрический

текст, позволяющий модифицировать выводимый текст в зависимости от за-

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

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

ся спецификации там, где должны быть размещены параметры.

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

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

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

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.