Turbo Vision

в данную строку ввода.Следует

выбрать интересующую строку (клавиша мыши или клавиши 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 - размещаемый текст.


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

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

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

внутри слов.


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

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

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

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

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

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


constructor tParamText.Init(var Bounds: tRect;

const AText: string; AParamCount: Integer);


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

AText - исходный текст со спецификациями параметров;

AParamCount - число параметров текста.


Списки строк


Списки строк в диалоговом окне напоминают поле скроллинга и его

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

списков.

Список строк (тип tListViewer) является абстрактным объектом, из

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

ретным списком информации (вертикальный и горизонтальный скроллинг).

Непосредственным потомком списка строк является список коллекции

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

коллекции строк (только вертикальный скроллинг).

Инициализируется список коллекции строк с помощью конструктора

Init :


constructor tListBox.Init(var Bounds: tRect;

ANumCols: Word; AScrollBar: pScrollBar);


где Bounds - поле, выделенное под список;

ANumCols - число колонок, в которые выводятся строки;

AScrollBar - указатель на линейку вертикального скроллинга.


Стандартные окна


В Turbo Vision имеется большое количество стандартных окон, имею-

щих специальное назначение.Рассмотрим стандартные информационные ок-

на.Заголовок функции MessageBox имеет вид :


function MessageBox(const Msg: string; Params:

Pointer; AOptions: Word): Word;


где Msg - размещаемое в окне сообщение;

Params - указатель на параметры сообщения;

AOptions - флаги;

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

окна.

Функция формирует окно размером 40*60, в котором помещается сооб-

щение Msg, скорректированное параметрами, находящимися по адресу, оп-

ределяемому значением Params и набор кнопок, определяемый параметром

AOptions, который определяет также тип окна (его название).


СОЗДАНИЕ СТРОК СОСТОЯНИЯ


Строка состояния не является необходимым атрибутом.Однако ее ис-

пользование помогает пользователю проще работать с программой, так как

он может получить информацию о текущем состоянии программы и клавишах

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

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

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

мые меню и строкой состояния.


Строка состояния, отображающая клавиши быстрого управления


Каждый элемент строки состояния , содержащий информацию о конк-

ретной клавише (их совокупности) быстрого управления, имеет стандарт-

ный тип-запись tStatusItem :


tStatusItem = record

Next: pStatusItem;

Text: pString;

KeyCode: Word;

Command: Word

end;


где Next - указатель на следующий элемент строки состояния;

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

для данной клавиши быстрого управления;

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

выбрать данный элемент строки состояния;

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

го элемента строки состояния.


Создать элемент строки состояния можно с помощью стандартной

функции NewStatusKey :


function NewStatusKey(const AText: string;

AKeyCode: Word; ACommand: Word; ANext:

pStatusItem); pStatusItem;


где AText - выводимый на экран текст;

AKeyCode - код клавиши быстрого управления;

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

ного элемента;

ANext - указатель на следующий элемент строки состояния;

результат - указатель на созданный элемент строки состояния.


Сама строка состояния имеет стандартный тип-запись tStatusDef :


tStatusDef = recerd

Next: pStatusDef;

Min, Max: Word;

Items: pStatusItem;

end;


где Next - указатель на следующую строку состояния;

Min, Max - миним. и максим. границы диапазона параметра контекс-

тной помощи, для которого отображается именно эта строка состояния;

Items - указатель на первый элемент списка элементов.

Элементы строки состояния также как и строки состояния представ-

ляют собой линейный список.


Для создания строки состояния можно воспользоваться стандартной

функцией NewStatusDef :


function NewStatusDef(AMin, AMax: Word;

AItems: pStatusItem; ANext: pStatusDef): pStatusDef;


где ANext - указатель на следующую строку состояния;

AMin, AMax - миним. и максим. границы диапазона параметра контекс-

тной помощи, для которого отображается именно эта строка состояния;

AItems - указатель на первый элемент списка элементов.


В строке состояния также можно отразить информацию о состоянии

программы в конкретный момент времени (процесс, протекающий в програм-

ме и т.д.)Информация такого вида зависит от значения параметра кон-

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

мы.Вывести такую информацию можно с помощью метода Hint объекта

tStatusLine :


function tStatusLine(AHelpCtx : Word): string; virtual;


где AHelpCtx - значение параметра контекстной помощи;

результат - строка символов, выводимая на экран.


ЦВЕТОВАЯ ПАЛИТРА TURBO VISION


Turbo Vision позволяет манипулировать цветом изображения объектов

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

ный в пакете, который охватывает расцвечивание всех стандартных объек-

тов и создает благоприятные цветовые ощущения у пользователя програм-

мы, или создавать свою палитру.


Стандартная палитра


Все стандартные отображаемые объекты имеют свою цветовую палитру

- набор цветов для отдельных элементов этого объекта, а окна и диало-

говые окна - по три палитры.Учитывая структуру отображаемых объектов

программы и то, что все отображаемые объекты программы за исключением

основного объекта tApplication, являются подэлементами какой - либо

группы, для каждого такого объекта палитра представляется строкой,

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

палитры данной группы.

Если в программе достаточно использовать цвета основной палитры

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

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

соответствующего объекта с помощью метода Draw :


procedure <отображаемый объект>.Draw; virtual;


который, в свою очередь, использует методы GetPallete :


function <отображаемый объект>.GetPallete:

pPallete; virtual;


определяющий указатель на конкретную палитру объекта, и GetColor :


function tView.GetColor(Color: Word): Word;


где Color - номер входа в палитру;

результат - атрибуты соответствующего цвета.


Изменение стандартной палитры


Если требуется изменить уже существующий цвет у всех использующих

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

ру.Для этого нужно либо внести изменения в исходный текст модуля App

(константа CAppColor) и перекомпилировать его, либо внести изменения

в метод GetPallete объекта tProgram.

Второй вариант - когда нужно изменить цвета у какого-нибудь объ-

екта группы, а в этой группе есть другой объект, обладающий необходи-

мыми цветами.В этом случае можно изменить соответствующим образом

константу, определяющую палитру у метода GetPallete.

Если необходимо изменить цвета конкретного объекта, а требуемого

сочетания цветов у его владельца нет, то следует дополнить основную

палитру программы новыми элементами, соответствующими требуемым цве-

там.Так как основная палитра исходно имеет 127 элементов, то примерно

столько же можно к ней добавить в случае необходимости.После этого

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

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

тов отдельных объектов в процессе выполнения программы, можно восполь-

зоваться средствами модуля ColorSel.


НЕОТОБРАЖАЕМЫЕ ОБЪЕКТЫ TURBO VISION


Помимо отображаемых, в Turbo Vision имеется ряд неотображаемых

объектов, предназначенных для выполнения действий, не связанных непос-

редственно с представлением информации на экране, в частности проверки

вводимой информации или размещения в них той или иной информации.

Основными неотображаемыми объектами являются анализаторы вводимой

информации, коллекции, потоки и ресурсы.Все эти объекты - потомки объ-

екта tObject.


Анализаторы вводимой информации


В Turbo Vision 2.0 имеется возможность контроля размещаемой в

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

анализаторами вводимой информации, исходным является абстрактный объ-

ект tValidator, а его потомками являются стандартные анализаторы.


Анализатор множества допустимых символов (тип tFilterValidator)

проверяет, входят ли вводимые символы в

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: