ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ................................................
ОТОБРАЖАЕМЫЕ ОБЪЕКТЫ ....................................
Объект tView ........................................
Группа (tGroup).Z - порядок .........................
Оформление программы, использующей средства Turbo
Vision.Объекты tProgram и tApplication ..............
Обработка событий ...................................
Команды .............................................
ПОРЯДОК РАБОТЫ С ОТОБРАЖАЕМЫМИ ОБЪЕКТАМИ ................
Описание отображаемого объекта ......................
Создание отображаемого объекта ......................
Помещение отображаемого объекта в группу ............
Задание параметров отображаемому объекту ............
Работа с модальными объектами .......................
СОЗДАНИЕ МЕНЮ ...........................................
Создание разворачивающегося меню ....................
Создание локального меню ............................
СОЗДАНИЕ ОКОН И ДИАЛОГОВЫХ ОКОН .........................
Окна в Turbo Vision .................................
Элементы окон в Turbo Vision ........................
Поле скроллинга .....................................
Текстовый элемент буферированной информации .........
Текстовый элемент для пассивного терминала ..........
Линейка скроллинга ..................................
Диалоговое окно .....................................
Элементы диалоговых окон ............................
Строка ввода ........................................
Метка ...............................................
Протокол ............................................
Селективный и триггерный списки .....................
Кнопка ..............................................
Статический и параметрический тексты ................
Списки строк ........................................
Стандартные окна ....................................
СОЗДАНИЕ СТРОК СОСТОЯНИЯ ................................
Строка состояния, отображающая клавиши быстрого
управления ..........................................
ЦВЕТОВАЯ ПАЛИТРА TURBO VISION ...........................
Стандартная палитра .................................
Изменение стандартной палитры .......................
НЕОТОБРАЖАЕМЫЕ ОБЪЕКТЫ TURBO VISION .....................
Анализаторы вводимой информации .....................
Объект - коллекция ..................................
Потоки Turbo Vision .................................
Ресурсы .............................................
Списки строк ........................................
НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ TURBO VISION .......
Текстовый редактор ..................................
Отображение древовидных структур ....................
Диалоговое окно задания цветной палитры .............
ЗАКЛЮЧЕНИЕ ..............................................
ВВЕДЕНИЕ
Для эффективной работы системы и ее большего покупательского
спроса недостаточно только того, чтобы аппаратура и программы обеспе-
чивали правильные результаты и быструю работу.Не менее важным фактором
является удобство работы пользователя.
Поэтому в настоящее время ни один программный продукт, лишенный
более или менее удобного интерфейса взаимодействия пользователя с
компьютером и программ между собой, не может рассчитывать на успех.
В мире разработано огромное количество различных систем поддержки
создания пользовательского интерфейса.Наиболее прогрессивными, по на-
шему мнению, являются объектноориентированная система Turbo Vision
фирмы Borland International и операционная система Windows фирмы
Microsoft.Рассмотрением возможностей ОС Windows занимался А.А.Галаш-
кин, а в представленной работе производится обзор и изучение особен-
ностей, возможностей, элементов, организации пакета Turbo Vision.
При создании прикладной программы программист большие усилия зат-
рачивает на организацию ввода/вывода информации, т.е. на формирование
интерфейса.Они соизмеримы с усилиями, затрачиваемыми на программирова-
ние основного алгоритма программы, по которому решается конкретная за-
дача.Работа, связанная с организацией ввода/вывода, повторяется от
программы к программе, требует выполнения однотипных операций, отвле-
кает внимание программиста от решения основной задачи.
Хорошим средством упрощения работы по организации ввода/вывода,
его унификации с учетом современных требований к интерфейсу программ
является разработанный фирмой Borland International пакет Turbo
Vision 2.0, представляющий объектно-ориентированную библиотеку средств
формирования пользовательского интерфейса.
Программу можно представить как совокуп-
ность двух частей : часть программы, обеспечивающая решение основной
задачи, и часть, обеспечивающая организацию ввода/вывода информации с
внешних устройств (на внешние устройства), - так называемый интерфейс
программы.В основную часть (из основной части) программы информация
может передаваться двумя способами - непосредственная передача инфор-
мации (например, программа формирует какие-то данные и размещает их в
конкретном файле на магнитном диске) и передача информации с помощью
организации диалога (например, после формирования тех же данных проис-
ходит уточнение, в какой конкретно файл следует поместить сформирован-
ную информацию).Способ, основанный на организации диалога, является
более универсальным и именно для организации диалога предназначен в
первую очередь пакет Turbo Vision.
В современных программах, работающих в текстовом режиме, диалог
обычно организуется с помощью трех средств : меню, диалоговых окон и
строк состояния.Turbo Vision позволяет реализовать все эти средства
диалога.
Turbo Vision представляет собой библиотеку объектов, позволяющих
создать пользовательский интерфейс и широко использующих свойства ин-
капсуляции, наследования и полиформизма.Почти все объекты библиотеки
являются потомками общего абстрактного объекта tObject.Мы рассмотрим
их классификацию, исходя из задач, возникающих при создании интерфейса.
Объект tObject достаточно прост.Он не имеет параметров и обладает
тремя методами, два из которых - конструктор Init :
constructor tObject.Init;
заполняющий выделенную под объект область нулями, и деструктор Done :
destructor tObject.Done;
не выполняющий никаких действий, - должны быть переопределены в его
потомках, а третий метод Free :
procedure tObject.Free;
удаляющий объект из динамической памяти, никогда не переопределяется,
т.к. может удалить любой потомок объекта tObject.
При организации интерфейса приходиться решать две задачи : созда-
ние соответствующего образа на экране и возможность посредством того
образа передачи информации как от пользователя к вычислительной маши-
не, так и от машины к пользователю.Помимо этих двух задач при организа-
ции интерфейса приходиться выполнять различные вспомогательные опера-
ции (вычисления, контроль и преобразование данных, хранение информации
и т.д.).В связи с этим все объекты Turbo Vision можно разбить на две
группы : отображаемые и неотображаемые объекты.
ОТОБРАЖАЕМЫЕ ОБЪЕКТЫ
Отображаемыми объектами являются такие объекты, которые могут
быть изображены на экране.Эти объекты позволяют наглядно представить
пользователю информацию, дать ему средства ввода информации в програм-
му наиболее естественным образом.К таким объектам относятся,в частнос-
ти, меню, строки состояния, диалоговые окна с их компонентами.
Любой отображаемый объект является потомком общего абстрактного
объекта tView, который является непосредственным потомком общего предка
tObject.
Неотображаемыми объектами являются объекты, которые не могут быть
изображены на экране.К этой категории, в частности, относятся объекты,
предназначенные для контроля и хранения данных.Наиболее часто исполь-
зуемыми объектами такого класса являются анализаторы вводимой информа-
ции, коллекции, потоки и ресурсы.
Любой объект Turbo Vision имеет большое количество параметров,
определяющих его свойства и методов (подпрограмм), задающих его пове-
дение.Согласно принципам объектного программирования, желательно пара-
метры объектов не изменять непосредственно, а с помощью соответствую-
щих методов, предназначенных для этой цели.Это связано с тем, что в
ряде случаев только изменение того или иного параметра недостаточно -
следует выполнить дополнительно определенные действия (например, пере-
рисовать объект на экране).В ряде случаев непосредственное изменение
параметров просто недопустимо.Практически для всех параметров объектов
в Turbo Vision указано, допустимо ли его непосредственно изменять (за-
писывать).К сожалению, принцип объектного программирования, требующий
изменения параметров только с помощью того или иного метода, в полной
мере в Turbo Vision не реализован, и приходится в простейших случаях
параметры изменять непосредственно либо писать свои дополнительные ме-
тоды.
Любой отображаемый объект может быть размещен на кране в прямоу-
гольной области, которая задается координатами левого верхнего и пра-
вого нижнего углов.В Turbo Vision координаты задают линии раздела меж-
ду знакоместами, и при этом нумерация по горизонтали и вертикали начи-
нается с нуля (координаты 0,0 - левый верхний угол экрана).Координаты
могут быть абсолютными, отсчитываемыми относительно левого верхнего
угла крана, и относительными, отсчитываемыми от левого верхнего угла
соответствующего окна (так называемого владельца данного отображаемого
объекта).
Для задания координат точки на кране и координат прямоугольной
области используются два объекта - tPoint, содержащий две координаты
точки - X и Y :
type tPoint = object
X, Y : Integer;
end;
и tRect, определяющий левый верхний и правый нижний углы прямоугольной
области.Объект tRect не только содержит соответствующие координаты, но
также обладает методами, позволяющими задавать, изменять, получать эти
координаты и выполнять над ними ряд других операций.
Объект tView
Предком отображаемых объектов является объект tView.Несмотря на
то, что этот объект абстрактный, т.е. нельзя создать конкретный обра-
зец этого типа, он имеет важное значение, т.к. задает общие свойства
всех отображаемых элементов и определяет виртуальные методы, которые
затем переопределяются для конкретных отображаемых объектов.
У объекта tView задаются следующие параметры :
Расположение и размеры объекта.Расположение объекта tView задает-
ся координатами его левого верхнего угла в поле его владельца - пара-
метр Origin, а размеры - параметром Size, задающим его ширину и высо-
ту.Непосредственно изменять эти параметры в программе не следует.Для
их задания нужно использовать методы Locate (одновременное задание
всех координат объекта) :
procedure tView.Locate(var Bounds: tRect);
где Bounds - область, выделяемая под объект в координатах его владель-
ца;
MoveTo (перемещение объекта в поле его владельца без изменения разме-
ров):
procedure tView.MoveTo(X, Y: Integer);
где X, Y - координаты левого верхнего угла объекта в поле его владель-
ца,
и GrowTo (изменение размеров объекта):
procedure tView.GrowTo(X, Y: Integer);
где X, Y - горизонтальный и вертикальный размеры объекта.
При изменении размеров объекта с помощью метода GrowTo остается
на месте левый верхний угол объекта.
Координаты курсора.Ряд отображаемых объектов, таких, как строка
ввода текстовой информации, редакторы и т.д., могут иметь видимый кур-
сор.Координаты этого курсора задаются параметром Cursor.Для объектов,
не имеющих видимого курсора, значение этого параметра безразлично.За-
дать координаты курсора можно с помощью метода SetCursor :
procedure tView.SetCursor(X, Y: Integer);
где X, Y - координаты курсора в поле объекта.
Курсор отображаемого элемента можно сделать видимым и невидимым
(параметр sfCursorVis флагов состояния), а также изменять его размеры
(параметр sfCursorIns).
Флаги свойств.Параметр Options размером в одно 16-разрядное слово
задает ряд свойств отображаемого объекта.Назначение битов этого слова
следующее (в круглых скобках приведены константы, соответствующие еди-
нице в указанном бите) :
0-й бит (ofSelectable) - возможность активизации (выделения) данного
объекта в его владельце либо с помощью мыши,
либо с помощью клавиши табуляции.Это свойство
используется у любого объекта, и обычно флаг
задается равным единице.
1-ый бит (ofTopSelect) - возможность размещения объекта при его акти-
визации (выделении) сверху всех остальных
объектов конкретной группы.Это свойство ис-
пользуется у окон (тип tWindow) и их потомков
- диалоговых окон, стандартных диалоговых
окон и т.д.
2-ой бит (ofFirstClick) - возможность использования первого нажатия
клавиши не только для выделения объекта (бит
0), но и для выполнения действий, которые
активизируются данным объектом.Свойство ис-
пользуется практически у всех отображаемых
объектов.
3-ий бит (ofFramed) - наличие рамки вокруг отображаемого объекта.Это
свойство используется для подэлементов окон.Не
следует этот флаг путать с наличием рамки окна
(tWindow) и его потомков.
4-ый бит (ofPreProcess) - опережающая реакция на событие.Задание флага
приводит к изменению стандартной последова-
тельности реакции отображаемых элементов
группы на событие.Свойство может использо-
ваться у любого элемента по мере необходимос-
ти.
5-ый бит (ofPostProcess) - запаздывающая реакция на событие.Аналогично
предыдущему флагу, но с другими последстви-
ями его использования.
6-ой бит (ofBuffered) - наличие КЭШ-буфера у отображаемого объекта,
когда образ отображаемого объекта не создается
каждый раз заново при его прорисовке на экране,
а хранится в специальном КЭШ-буфере.Флаг важен
для сложных составных объектов типа окна и его
потомков.
7-ой бит (ofTileable) - расположение отображаемых объектов встык или
каскадно (с наложением).Этот флаг использу-
ется только у окон и их потомков.
8-ой бит (ofCenterX) - центрирование объекта по горизонтали.При зада-
нии этого флага объект при его первоначальной
прорисовке центрируется относительно верти-
кальной оси его владельца.Флаг может использо-
ваться у элементов, входящих в группу элемен-
тов.
9-ый бит (ofCenterY) - центрирование объекта по вертикали.Аналогично
предыдущему флагу, но только объект центриру-
ется относительно горизонтальной оси его вла-
дельца.
10-ый бит (ofValidate) - задается проверка правильности введенной в
объект информации при выходе из этого объек-
та (активизации другого объекта).Флаг ис-
пользуется только со строками ввода.
11-ый бит (ofVersion20) - используется Turbo Vision 2.0.Ряд объектов
(как, например, строка ввода) имеют принци-
пиальные отличия в зависимости от версии
Turbo Vision.Версия 2.0 имеет дополнительные
возможности по сравнению с версией 1.0.
12-ый бит (ofVersion10) - используется Turbo Vision 1.0.
Остальные биты слова флагов свойств не используются.Для задания
флагов свойств можно использовать константу ofCentred=$0300 (одновре-
менное центрирование по горизонтали и вертикали), с помощью которой
можно одновременно установить 8 и 9 биты параметра Options.Имеется
константа ofVersion=$3000, позволяющая выделить биты, связанные с вер-
сией Turbo Vision.
Флаги перемещения.Параметр DragMode размером в один байт задает
характеристики отображаемого объекта при его перемещении :
0-й бит (dmDragMove) - разрешение перемещения объекта либо с помощью
мыши, либо с помощью клавиш направления. Используется у тех
объектов, которые по тем или иным причинам могут перемещаться
в поле своего владельца, например у окон и их потомков.
1-й бит (dmDragGrow) - разрешение изменения размеров объекта либо с
помощью мыши, либо с помощью клавиш направления.Используется
у окон и их потомков.
4-й бит (dmLimitLoX) - запрещение левой стороне отображаемого объекта
выходить за заданные границы.В качестве таких границ часто
выступают размеры владельца данного объекта (например, разме-
ры рабочего поля, в котором размещены окна).
5-й бит (dmLimitLoY) - аналогично 4 биту, но запрещение верхней сторо-
не отображаемого объекта выходить за заданные границы.
6-й бит (dmLimitHiX) - аналогично 4 биту, но запрещение правой стороне
отображаемого объекта выходить за заданные границы.
7-й бит (dmLimitHiY) - аналогично 4 биту, но запрещение нижней стороне
отображаемого объекта выходить за заданные границы.
Остальные биты параметра DragMode не используются.Для одновремен-
ного задания ограничений на перемещение во всех направлениях можно ис-
пользовать константу dmLimitAll=$FO, устанавливающую в единицу биты с
... панели ввода, кнопки управления с независимой и зависимой фиксацией; - стандартную обработку нажатий клавиш и работы манипулятором "мышь"; - и многое другое! Чтобы использовать Turbo Vision , нужно свободно владеть объектно-ориентированим программированием (ООП) и, в частности, С++. В приложениях, написаных с использованием TurboVision , широко используется техника ООП, в ...
... работе в графическом режиме предназначается для обучения студентов младших курсов Санкт-Петербургской государственной Академии аэрокосмического приборостроения навыкам программирования, а именно работе в графическом режиме языка Turbo-Pascal . Для работы с настоящей программой необходимо знание стандарта языка, интегрированной среды и элементарным навыкам работы с персональным компьютером . ...
... і форматування тексту, створення і робота з вікнами та багато іншого. Основним засобом відображення інформації, яка вводиться і виводиться під час роботи прикладних і системних програм є екран. В Turbo Pascal є можливість працювати з екраном у текстовому і графічному режимах. Текстовий режим призначений для відображення символів кодової таблиці і характеризується максимальним числом символів ...
... ныне систем программирования выбран именно Турбо-Паскаль по следующим причинам: 1) По сравнению с другими языками программирования, которые обыч- но используются для создания систем искусственного интеллекта (LISP, PROLOG, SMALLTALK), язык Паскаль проще в изучении; программы на Паска- ле более читаемы. 2) От других обычных современных языков программирования (C++, BASIC,MODULA 2, ...
0 комментариев