Переменная MouseIntFlag Drivers
=================================================================
Объявление MouseIntFlag: Byte;
Функция Используется внутри драйвера мышки Turbo Vision и
видимыми элементами. Устанавливается как только
возникает событие от мышки.
Переменная MouseWhere Drivers
=================================================================
Объявление MouseWhere: TPoint;
Функция Содержит текущую позицию мышки в глобальных
координатах. MouseWhere корректируется обработчиком
прерываний мышки как только мышка сдвигается.
Используйте процедуру MakeLocal для преобразования к
локальным (относительно окна) координатам. MouseWhere
передается в обработчики событий вместе с другими
данными мышки.
См. также GetMouseEvent, методы GetEvent, MakeLocal
Процедура MoveBuf Objects
=================================================================
Объявление procedure MoveBuf(var Dest; var Source; Attr: Byte;
Count: Word);
Функция Копирует текст в буфер для использования с
TView.WriteBuf или TView.WriteLine. Dest должен быть
TDrawBuffer (или эквивалентным массивом слов) и
Source должен быть массивом байт. Count байт
копируются из Source в младшие байты соответствующих
слов в Dest. Старшие байты слов в Dest
устанавливаются в Attr или остаются неизменными, если
Attr - 0.
См. также тип TDrawBuffer, MoveChar, MoveCStr, MoveStr.
Процедура MoveChar Objects
=================================================================
Объявление procedure MoveChar(var Dest; C: Char; Attr: Byte;
Count: Word);
Функция Копирует символы в буфер для использования с
TView.WriteBuf или TView.WriteLine. Dest должен быть
TDrawBuffer (или эквивалентным массивом слов).
Младшие байты первых Count слов Dest устанавливаются
в С или остаются неизменными, если Ord(C) - 0.
Старшие байты слов устанавливаются в Attr или
остаются неизменными, если Attr - 0.
См. также тип TDrawBuffer, MoveBuf, MoveCStr, MoveStr.
Процедура MoveCStr Objects
=================================================================
Объявление procedure MoveCStr(var Dest; Str: String;
Attrs: Word);
Функция Копирует строку в буфер для использования с
TView.WriteBuf или TView.WriteLine. Dest должен быть
TDrawBuffer (или эквивалентным массивом слов).
Символы в Str копируются в младшие байты
соответствующих слов в Dest. Старшие байты слов
устанавливаются в Lo(Attr) или в Hi(Attr). Символы
"~" в строке используются для переключения между
двумя байтами атрибута, передаваемыми в слове Attr.
См. также тип TDrawBuffer, MoveChar, MoveBuf, MoveStr.
Процедура MoveStr Objects
=================================================================
Объявление procedure MoveStr(var Dest; Str: String;
Attr: Byte);
Функция Копирует строку в буфер для использования с
TView.WriteBuf или TView.WriteLine. Dest должен быть
TDrawBuffer (или эквивалентным массивом слов).
Символы в Str копируются в младшие байты
соответствующих слов в Dest. Старшие байты слов
устанавливаются в Attr или остаются неизменными, если
Attr - 0.
См. также тип TDrawBuffer, MoveChar, MoveCStr, MoveBuf.
Функция NewItem Menus
=================================================================
Объявление function NewItem(Name, Param: TMenuStr; KeyCode: Word;
Command: Word; AHelpCtx: Word; Next:
PMenuItem): PMenuItem;
Функция Распределяет и возвращает указатель на новую запись
TMenuItem, которая представляет элемент меню (NewStr
используется для распределения полей указателей строк
Name и Param). Параметр Name должен быть непустой
строкой и параметр Command должен быть ненулевым.
Вызовы NewItem, NewLine, NewMenu и NewSubMenu могут
быть вложенными для создания полного дерева меню в
одном операторе Паскаля; для примеров см. главу 2.
См. также TApplication.InitMenuBar, тип TMenuView, NewLine,
NewMenu, NewSubMenu.
Функция NewLine Menus
=================================================================
Объявление function NewLine(Next: PMenuItem): PMenuItem;
Функция Распределяет и возвращает указатель на новую запись
TMenuItem, которая представляет отдельную строку в
окне меню.
См. также TApplication.InitMenuBar, тип TMenuView, NewMenu,
NewSubMenu, NewItem.
Функция NewMenu Menus
=================================================================
Объявление function NewMenu(Items: PMenuItem): Pmenu;
Функция Распределяет и возвращает указатель на новую запись
TMenu. Поля Items и Default записи устанавливаются в
значение данное параметром Items.
См. также TApplication.InitMenuBar, тип TMenuView, NewLine,
NewSubMenu, NewItem.
Функция NewSItem Dialogs
=================================================================
Объявление function NewSItem(Str: String; ANext: PSItem): PSItem;
Функция Распределяет и возвращает указатель на новую запись
TSItem. Поля Value и Next записи устанавливаются в
NewStr(Str) и ANext соответственно. Функция NewSItem
и запись типа TSItem позволяют легко конструировать
связанные списки строк; для примера см. главу 4.
Функция NewStatusDef Menus
=================================================================
Объявление function NewStatusDef(AMin, AMax: Word; AItems:
PStatusItem; ANext: PStatusDef): PStatusDef;
Функция Распределяет и возвращает указатель на новую запись
TStatusDef. Запись инициализируется с данными
значениями параметров. Вызовы NewStatusDef
NewStatusKey могут быть вложенными для создания
полных описаний строк статуса в одном операторе
Паскаля; для примеров см. главу 2.
См. также TApplication.InitStatusLine, TStatusLine,
NewStatusKey.
Функция NewStatusKey Menus
=================================================================
Объявление function NewStatusKey(AText: String; AKeyCode: Word;
ACommand: Word; ANext: PStatusItem): PStatusItem;
Функция Распределяет и возвращает указатель на новую запись
TStatusItem. Запись инициализируется со значениями
параметров (NewStr используется для распределения
поля указателя Text). Если AText пусто (результатом
будет nil в поле Text), элемент статуса скрывается,
но будет обеспечивать, однако, отображение из данного
KeyCode в Command.
См. также TApplication.InitStatusLine, TStatusLine,
NewStatusDef.
Функция NewStr Objects
=================================================================
Объявление function NewStr(S: String): PString;
Функция Функция динамической строки. Если S - нулевая, NewStr
возвращает nil; в противном случае, распределяются
Length(S)+1 байт, содержащие копию S и возвращается
указатель на первый байт.
Строки создаваемые с помощью NewStr могут быть
освобождены с помощью DisposeStr.
См. также DisposeStr.
Функция NewSubMenu Menus
=================================================================
Объявление function NewSubMenu(Name: TmenuStr; AHelpCtx: Word;
SubMenu: PMenu; Next: PMenuItem): PMenuItem;
Функция Распределяет и возвращает указатель на новую запись
TMenuItem, которая представляет подменю (NewStr
используется для распределения поля указателя Name).
См. также TApplication.InitMenuBar,TMenuView, NewLine, NewItem.
Константы ofXXXX Views
=================================================================
Функция
Эти мнемоники используются для ссылок на битовые
позиции поля TView.Options. Установка позиции бита в
1 указывает, что видимый элемент имеет отдельный
атрибут; очистка битовой позиции означает, что
атрибут отключен или запрещен. Например,
MyWindow.Options := ofTileable + ofSelectable;
Значения Определены следующие опции флагов:
Таблица 14.23. Опции флагов.
-------------------------------------------------------------------
Константа Назначение
-------------------------------------------------------------------
ofSelectable Установлен, если видимый элемент выбирает себя
автоматически (см. sfSelectable), например,
отметкой мышкой в видимом элементе или клавишей Tab
в диалоговом окне.
ofTopSelect Установлен, если видимый элемент помещается перед
всеми другими равными видимыми элементами, когда он
выбран. Когда бит ofTopSelect установлен, вызов
TView.Select соответствует вызову TView.MakeFirst.
Окна (TWindow и его потомки) по умолчанию имеют
этот бит установленным, что заставляет их
располагаться перед всеми другими окнами на панели
экрана, когда они выбираются. См. также
TView.Select, TGroup.MakeFirst.
ofFirstClick Если очищен, отметка мышкой, которая выбирает
видимый элемент, не имеет эффекта. Если установлен,
такая отметка мышкой будет работать как обычный
отметка мышкой после выбора видимого элемента. Не
имеет эффекта, если ofSelectable не установлен. См.
также TView.HandleEvent, sfSelect, ofSelectable.
ofFramed Установлен, если видимый элемент имеет рамку.
TWindow и его потомки имеют TFrame, как свой
последний подэлемент. Когда видимый элемент рисует
себя, TFrame рисует рамку вокруг любого другого
подэлемента, у которого установлен бит ofFrame. См.
также TFrame, TWindow.
ofPreProcess Установлен, если видимый элемент получает активные
события до того, как они были посланы активному
элементу. В противном случае очищен. См. также
sfFocused, ofPostProcess, TGroup.Phase.
ofPostProcess Установлен, если видимый элемент получает активное
событие в случае, когда активный элемент не может
их обработать. В противном случае очищается. См.
также sfFocused, ofPreProcess, TGroup.Phase.
ofBuffered Используется только для объектов TGroup.
Установлен, если кэш-буфер распределяет доступную
память. Буфер группы содержит образ экрана для всей
группы, таким образом увеличивая скорость
перерисовки. При отсутствии буфера, TGroup.Grow
вызывает методы каждого подэлемента DrawView. Если
впоследствии New и GetMem не могут получить
достаточно памяти, буфера группы будут освобождать
память. См. также GetBufMem.
ofTileable Установлен, если панель экрана может расположить
этот видимый элемент черепицей (или каскадом).
Обычно используется только с объектами TWindow.
ofCenterX Установлен, если видимый элемент центрируется по
оси Х своего владельца при вставке в группу с
использованием TGroup.Insert.
ofCenterY Установлен, если видимый элемент центрируется по
оси Y своего владельца при вставке в группу с
использованием TGroup.Insert.
ofCentered Установлен, если видимый элемент центрируется по
обоим осям своего владельца при вставке в группу с
использованием TGroup.Insert.
-------------------------------------------------------------------
Биты Options определены:
Рис. 14.4. Флаги битов Options.
+-------- TView.Options --------+
msb lsb
+-+------------------- ofCentered = $0300
+=+=+=+=+=+=+++++=+=+=+=+=+=+=+=+
+++=+=+=+=+++++++++++++++++++++++
+----+----+ | | | | | | | | | +--- ofSelectable = $0001
| | | | | | | | | +----- ofTopSelect = $0002
Неопределены | | | | | | | +------- ofFirstClick = $0004
| | | | | | +--------- ofFramed = $0008
| | | | | +----------- ofPreProcess = $0010
| | | | +------------- ofPostProcess = $0020
| | | +--------------- ofBuffered = $0040
| | +----------------- ofTileable = $0080
| +------------------- ofCenterX = $0100
+--------------------- ofCenterY = $0200
См. также TView.Options.
Тип PChar Objects
=================================================================
Объявление PChar = ^Char;
Функция Определяет указатель на символ.
Переменная PositionalEvents Views
=================================================================
Объявление PositionalEvents:Word = evMouse;
Функция Определяет классы событий как позиционированные
события. Переменные FocusedEvents и PositionalEvents
используются TGroup.HandleEvent, чтобы установить
соответствие события подэлементам группы. Если класс
события не принадлежит FocusedEvents или
PositionalEvents, то оно интерпретируется как общее
событие.
См. также TGroup.HandleEvent, тип TEvent, константы события
evXXXX, переменная Focused Events.
Процедура PrintStr Drivers
=================================================================
Объявление procedure PrintStr(S: String);
Функция Печатает строку S на экране, используя вызов функции
DOS 40H для записи в стандартное устройство вывода
DOS. Имеет тот же эффект, что и Write (S), за
исключением того, что PrintStr не требует
редактирования с программой библиотеки времени
выполнения файлового ввода/вывода.
Тип PString Objects
=================================================================
Объявление PString = ^String;
Функция Определяет указатель на строку.
Тип PtrRec Objects
=================================================================
Объявление PtrRec = record
Ofs, Seg: Word;
end;
Функция Запись, содержащая значение сегмента и смещения
указателя.
Процедура RegisterDialogs Dialogs
=================================================================
Объявление procedure RegisterDialogs;
Функция Вызывает RegisterType для каждого стандартного типа
объекта, определенного в модулях TDialog, TInputLine,
TButton, TCluster, TRadioButtons, TCheckBoxes,
TListBox, TStaticText, TParamText, TLabel, THistory.
Это позволяет использовать все эти объекты с потоком
В/В.
См. также TStreamRec, RegisterTypes.
Процедура RegisterType Objects
=================================================================
Объявление procedure RegisterType(var S: TStreamRec);
Функция Тип объекта Turbo Vision должен быть зарегистрирован
перед использованием в потоке В/В. Стандартные типы
объектов уже зарегистрированы с ObjTypes в
резервированном диапазоне 099. RegisterType создает
элемент в связанном списке записей TStreamRec.
См. также TStream.Get, TStreamPut, TStreamRec.
Переменная RepeatDelay Drivers
=================================================================
Объявление RepeatDelay = 8;
Функция Определяет число квантов времени (1/18.2 часть
секунды), которое должно быть известно перед
генерацией событий evMouseAuto. Временной интервал
между событиями evMouseAuto всегда составляет один
квант.
См. также DoubleDelay, GetMouseEvent, константы evXXXX.
Переменная SaveCtrlBreak Drivers
=================================================================
Объявление SaveCtrlBreak: Boolean = False;
Функция Процедура InitSysError сохраняет состояние Ctrl-Break
DOS, проверяя эту переменную перед запрещением
проверки Ctrl-Break DOS. DoneSysError восстанавливает
Ctrl-Break DOS, проверяя значение, сохраненное в этой
переменной.
См. также InitSysError, DoneSysError
Константы sbXXXX Views
=================================================================
Функция
Эти константы определяют различные области
TScrollBar, в которых воспринимется отметка мышкой.
Функция TScrollBar.ScrollStep осуществляет
преобразование этих констант в действительные
значения шага скроллинга. Хотя она определена,
константа sbIndicator никогда не передается в
TScrollBar.ScrollStep.
Таблица 14.24. Константы полосы скроллинга.
-----------------------------------------------------------
Константа Значение Назначение
-----------------------------------------------------------
sbLeftArrow 0 Левая стрелка горизонтальной полосы
скроллинга.
sbRightArrow 1 Правая стрелка горизонтальной полосы
скроллинга.
sbPageLeft 2 Левая страничная область горизонтальной
полосы скроллинга.
sbPageRight 3 Правая страничная область горизонтальной
полосы скроллинга.
sbUpArrow 4 Стрелка вверх вертикальной полосы
скроллинга.
sbDownArrow 5 Стрелка вниз вертикальной полосы
скроллинга.
sbPageUp 6 Верхняя страничная область вертикальной
полосы скроллинга.
sbPageDown 7 Нижняя страничная область вертикальной
полосы скроллинга.
sbIndicator 8 Индикатор на полосе скроллинга.
-----------------------------------------------------------
Рис. 14.5. Полоса скроллинга.
ч-- sbUpArrow
#
# ч-- sbPageUp
#
sbIndicator --------ц ю
| #
| #
| #
| # ч-- sbPageDown
| #
| #
щ ч-- sbDownArrow
###############ю###################-+
ш ш ш ш
| | | |
| sbPageLeft sbPageRight |
sbLeftArrow sbRightArrow
Следующие значения могут быть переданы в функцию
TWindow.StandardScrollBar:
Таблица 14.25. Константы StandardScrollBar.
-----------------------------------------------------------
Константа Значение Назначение
-----------------------------------------------------------
sbHorizontal $0000 Полоса скроллинга горизонтальна.
sbVertical $0001 Полоса скроллинга вертикальна.
sbHandleKeyboard $0002 Полоса скроллинга реагирует на
команды клавиатуры.
-----------------------------------------------------------
См. также TScrollBar, TScrollBar.TScrollStep.
Переменная ScreenBuffer Drivers
=================================================================
Объявление ScreenBuffer: Pointer;
Функция Указатель на буфер экрана.
См. также InitVideo.
Переменная ScreenHeight Drivers
=================================================================
Объявление ScreenHeight: Byte;
Функция Устанавливается InitVideo и SetVideoMode в высоту
экрана в строках для текущего экрана.
См. также InitVideo, SetVideoMode, ScreenWidth.
Переменная ScreenMode Drivers
=================================================================
Объявление ScreenMode: Word;
Функция Хранит текущий видеорежим. Изначально устанавливается
инициализационным кодом модуля Drivers, ScreenMode
может быть изменена использованием SetVideoMode.
Значения ScreenMode обычно устанавливаются
использованием мнемоник режима экрана smXXXX.
См. также InitVideo, SetVideoMode, smXXXX.
Переменная ScreenWidth Drivers
=================================================================
Объявление ScreenWidth: Byte;
Функция Устанавливается InitVideo в ширину экрана (число
символов с строке).
См. также InitVideo.
Тип SelectMode Views
=================================================================
Объявление SelectMode = (NormalSelect, EnterSelect, LeaveSelect);
Функция Используется внутренне Turbo Vision.
См. также TGroup.ExecView, TGroup.SetCurrent.
Процедура SetVideoMode Drivers
=================================================================
Объявление procedure SetVideoMode(Mode: Word);
Функция Устанавливает видеорежим. Mode одна из констант
smCO80, smBW80 или smMono с необязательнвм smFont8x8
добавленным для выбора 43 или 50-строчного режима EGA
или VGA. SetVideoMode инициализирует некоторые
переменные как InitVideo (за исключением переменной
StartupMode, на которую это не воздействует).
SetVideoMode обычно не вызывается напрямую. Вместо
этого используйте TApplication.SetScreenMode, которая
также устанавливает палитру программы.
См. также InitVideo, константы smXXXX,
TApplication.SetScreenMode.
Константы sfXXXX Views
=================================================================
Функция Эти константы используются для доступа к
соответствующим битам полей TView.State. Поля
TView.State никогда не должны изменяться напрямую;
вместо этого Вы должны использовать метод
TView.SetState.
Значения Определены следующие флаги состояния:
Таблица 14.26. Константы флагов состояния.
-------------------------------------------------------------------
Константа Назначение
-------------------------------------------------------------------
sfVisible Установлен, если видимый элемент виден в своем
владельце. Видимые элементы по умолчанию sfVisible.
Методы TView.Show и TView.Hide могут использоваться
для модификации sfVisible. При sfVisible видимый
элемент не обязательно видим на экране, поскольку его
владелец может быть невидим. Для проверки видимости
на экране, проверьте бит sfExposed или вызовите
функцию TView.Exposed.
sfCursorVis Установлен, если курсор видимого элемента видим, в
противном случае очищен. По умолчанию очищен. Методы
TView.ShowCursor и TView.HideCursor могут
использоваться для модификации sfCursorVis.
sfCursorIns Установлен, если курсор видимого элемента - сплошной
блок, очищен, если курсор видимого элемента - линия.
По умолчанию очищен. Методы TView.BlockCursor и
TView.NormalCursor могут использоваться для
модификации sfCursorIns.
sfShadow Установлен, если видимый элемент имеет тень, в
противном случае, очищен.
sfActive Установлен, если видимый элемент это активное окно
или подэлемент активного окна.
sfSelected Установлен, если видимый элемент это текущий
выбранный подэлемент внутри своего владельца. Каждый
объект TGroup имеет поле Current, которое указывает
на текущий выбранный подэлемент (или nil, если
подэлементов не выбрано). Может быть только один
выбранный подэлемент в TGroup.
sfFocused Установлен, если видимый элемент сфокусированный.
Видимый элемент - сфокусированный, если он выбран и
все владельцы выше его также выбраны, т.е. если
видимый элемент находится в цепи образованной
указателями Current всех TGroup, начиная с
TApplication (самый верхний видимый элемент в
иерархии видимых элементов). Последний видимый
элемент цепи это конечное назначение для всех
сфокусированных событий.
sfDragging Установлен, если видимый элемент можно растягивать, в
противном случае, очищен.
sfDisabled Установлен, если видимый элемент запрещен; очищен,
если разрешен.
sfModal Установлен, если видимый элемент - модальный. Всегда
существует точно один элемент в выполняемой на Turbo
Vision программе, обычно, объекты TAppplication или
TDialog. Когда видимый элемент начинает выполняться
(через вызов ExecView), этот видимый элемент
становится модальным. Модальный видимый элемент
представляет вершину (корень) активного дерева
событий, получая события и управляя ими до тех пор
пока не вызван его метод EndModal. Во время этого
"локального" цикла событий события передаются нижним
подэлементам в дереве видимых подэлементов. События
от этих нижних видимых элементов передаются по
дереву, но не далее модального видимого элемента. См.
также sfSelected, sfFocused, TView.SetState,
TView.HandleEvent, TGroup.ExecView.
sfExposed Установлен, если у видимого элемента прямой или
косвенный владелец - объект TApplication и
следовательно он может быть виден на экране. Метод
TView.Exposed использует этот флаг при отсечении
(клиппинге), определяя какая часть видимого элемента
действительно видна на экране. См. также
TView.Exposed.
-------------------------------------------------------------------
Значения Биты флага состояния определены так:
Рис. 14.6. Биты флага состояния.
+------ TView.State Flags ------+
msb lsb
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+=+=+=+=+++=+++++++++++++++++++++
| | | | | | | | | | +--- sfVisible = $0001
| | | | | | | | | +----- sfCursorVis = $0002
| | | | | | | | +------- sfCursorIns = $0004
| | | | | | | +--------- sfShadow = $0008
| | | | | | +----------- sfActive = $0010
| | | | | +------------- sfSelected = $0020
| | | | +--------------- sfFocused = $0040
| | | +----------------- sfDragging = $0080
| | +------------------- sfDisabled = $0100
| +--------------------- sfModal = $0200
+------------------------- sfExposed = $0800
См. также TView.State.
Переменная ShadowAttr Views
=================================================================
Объявление ShadowAttr: Byte = $80;
Функция Эта переменная управляет цветом тени, доступной
видимым элементам с установленным битом sfShadow.
Тень это обычно разреженная серая область,
отображаемая прямо от краев видимого элемента с
иллюзией 3-D.
См. также ShadowSize.
Переменная ShadowSize Views
=================================================================
Объявление ShadowSize: TPoint = (X: 2; Y: 1);
Функция Это значение управляет размером тени, кторая доступна
с установленным битом sfShadow. Тень это обычно
разреженная серая область, отображаемая прямо от
краев видимого элемента с иллюзией 3-D. По умолчанию,
размер тени - 2 по оси X и 1 по Y.
TProgram.InitScreen инициализирует ShadowSize: если
режим экрана равен smMono, ShadowSize устанавливается
в (0, 0). Иначе ShadowSize устанавливается в (2, 1),
если только не установлен smFont8x8 (43- или
50-строчный режим), в этом случае устанавливается в
(1, 1).
См. также TProgram.InitScreen, ShadowAttr.
Переменная ShowMarkers Drivers
=================================================================
Объявление ShowMarkers: Boolean;
Функция Используется для указания будут ли индикаторы
размещаться вокруг активных элементов управления.
TProgram.InitScreen устанавливает ShowMarkers в True,
если монохромный видеорежим, иначе в False. Однако
значение может быть установлено, при необходимости, в
цветной или черно-белый режим.
См. также TProgram.InitScreen, переменная SpecialChars.
Процедура ShowMouse Drivers
=================================================================
Объявление procedure ShowMouse;
Функция ShowMouse уменьшает "счетчик невидимости" в драйвере
мышки и делает курсор мышки видимым если счетчик
равен 0.
См. также InitEvents, DoneEvents, HideMouse.
Константы smXXXX Drivers
=================================================================
Функция Эти мнемонические константы используются с
SetVideoMode для установки соответствующего значения
видеорежима в ScreenMode.
Значения В Turbo Vision определены следующие режимы экрана:
Таблица 14.27. Константы режимов экрана.
-----------------------------------------------------------
Константа Значение Назначение
-----------------------------------------------------------
smBW80 $0002 Черно-белый режим на цветном
smCO80 $0003 Цветной режим
smMono $0007 Монохромный режим
smFont8x8 $0100 43- или 50-строчный режим
-----------------------------------------------------------
См. также SetVideoMode, ScreenMode.
Переменная SpecialChars Views
=================================================================
Объявление SpecialChars: array[05] of Char = (#175, #174,
#26, #27, ' ', ' ');
Функция Определяет символы индикатора используемые для
подсветки активного видимого элемента в монохромном
видеорежиме. Эти символы отображаются, если
переменная ShowMarkers - True.
См. также переменную ShowMarkers.
Константы stXXXX Objects
=================================================================
Функция Существует два набора констант начинающихся с "st",
которые используются потоками Turbo Vision.
Значения Следующие костанты режима используются в TDosStream и
TBufStream для определения режима доступа к файлу при
открытии файла в потоках Turbo Vision:
Таблица 14.28. Режимы доступа к потоку.
-----------------------------------------------------------
Константа Значение Назначение
-----------------------------------------------------------
stCreate $3C00 Создать новый файл
stOpenRead $3D00 Открыть файл только на чтение
stOpenWrite $3D01 Открыть файл только на запись
stOpen $3D02 Открыть файл на чтение/запись
-----------------------------------------------------------
Следующие значения возвращаются TStream.Error в поле
TStream.ErrorInfo, когда возникает ошибка потока:
Таблица 14.29. Коды ошибок потока.
-----------------------------------------------------------
Константа Значение Назначение
-----------------------------------------------------------
stOk 0 Нет ошибки
stError -1 Ошибка доступа
stInitError -2 Нельзя инициализировать поток
stReadError -3 Чтение за концом потока
stWriteError -4 Нельзя расширить поток
stGetError -5 Get для незарегистрированного типа объекта
stPutError -6 Put для незарегистрированного типа объекта
-----------------------------------------------------------
См. также TStream.
Переменная StartupMode Drivers
=================================================================
Объявление StartupMode: Word;
Функция Программа InitVideo сохраняет текущий режим экрана в
этой переменной до переключения в режим экрана
заданный в ScreenMode. DoneVideo восстанавливает
режим экрана в значение запомненное в StartupMode.
См. также InitVideo, DoneVideo, ScreenMode.
Переменная StatusLine App
=================================================================
Объявление StatusLine: PStatusLine = nil;
Функция Сохраняет указатель на строку статуса программы.
Переменная StatusLine инициализируется в
TProgram.InitStatusLine, вызываемой из TProgram.Init.
Значение nil указывает, что в программе нет строки
статуса.
См. также InitStatusLine.
Переменная StreamError Objects
=================================================================
Объявление StreamError: Pointer = nil;
Функция Если не nil, StreamError указывает на процедуру,
которая вызывается методом Error потока при
возникновении ошибки. Процедура должна быть дальней и
использовать var параметр типа TStream, т.е. иметь
объявление:
procedure MyStreamErrorProc(var S: TStream); far;
StreamError позволяет Вам глобально перекрыть всю
обработку ошибок потока. Чтобы изменит обработку
ошибок для определенного типа потока, Вы должны
перекрыть метод Error этого потока.
Переменная SysColorAttr Drivers
=================================================================
Объявление SysColorAttr: Word = $4E4F;
Функция Цвет по умолчанию используется для вывода сообщений
об ошибках обработчиком системных ошибок. На
монохромных системах SysMonoAttr используется вместо
SysColorAttr. Сообщения об ошибках с опцией отменить/
восстановить отображаются в строке статуса.
Предыдущая строка статуса сохраняется и
восстанавливается, когда условия разрешены.
См. также SystemError, SysMonoAttr.
Переменная SysErrActive Drivers
=================================================================
Объявление SysErrActive: Boolean = False;
Функция Указывает, активен ли обработчик системных ошибок в
данный момент. Устанавливается в True через
InitSysError.
Переменная SysErrorFunc Drivers
=================================================================
Объявление SysErrorFunc: TSysErrorFunc = SystemError;
Функция SysErrorFunc - это функция системной ошибки типа
TSysErrorFunc. Функция системной ошибки вызывается
при возникновении критической ошибки DOS или когда
требуется смена диска на компьютере с одним гибким
диском. ErrorCode - это значение от 0 до 15, как
определено в таблице 14.30, а Drive - это номер
устройства (0=А, 1=В и т.д.) для дисковых ошибок. По
умолчанию функция системной ошибки - это SystemError.
Вы можете установить свою функцию системной ошибки,
назначая ее в SysErrorFunc. Функции системных ошибок
не могут перекрываться.
Таблица 14.30. Коды функции системной ошибки.
-----------------------------------------------------------
Код ошибки Значение
-----------------------------------------------------------
012 Коды критических ошибок DOS
13 Плохой образ таблицы распределения файлов
14 Ошибка доступа к устройству
15 Указание смены диска
-----------------------------------------------------------
Возвращаемые значения функции:
Таблица 14.31. Значения, возвращаемые функцией
системной ошибки.
-----------------------------------------------------------
Возвращаемое значение Назначение
-----------------------------------------------------------
0 Пользователь запросил повтор
1 Пользователь запросил отмену
-----------------------------------------------------------
См. также функцию SystemError, тип TSysErrorFunc,
процедуру InitSysError.
Переменная SysMonoAttr Drivers
=================================================================
Объявление SysMonoAttr: Word = $7070;
Функция Атрибут по умолчанию используется для вывода
сообщений об ошибках обработчиком системных ошибок.
На цветных системах SysColorAttr используется вместо
SysMonoAttr. Сообщения об ошибках с опцией отменить/
восстановить отображаются в строке статуса.
Предыдущая строка статуса сохраняется и
восстанавливается, когда условия разрешены.
См. также SystemError, SysColorAttr.
Функция SystemError Drivers
=================================================================
Объявление function SystemError(ErrorCode: Integer;
Drive: Byte): Integer;
Функция Функция системной ошибки по умолчанию. Она отображает
одно из следующих сообщений об ошибке в строке
статуса в зависимости от значения ErrorCode,
используя атрибуты цвета, определяемые SysColorAttr
или SysMonoAttr.
Таблица 14.32. Сообщения функции SystemError.
-----------------------------------------------------------
Код ошибки Сообщение
-----------------------------------------------------------
0 Disk is write-protected in drive X
Драйвер X диска защищен от записи
1 Critical disk error on drive X
Критическая ошибка диска на драйвере X
2 Disk is not ready in drive X
Драйвер X диска не готов
3 Critical disk error on drive X
Критическая ошибка диска на драйвере X
4 Data integrity error on drive X
Ошибка данных на драйвере X
5 Critical disk error on drive X
Критическая ошибка диска на драйвере X
6 Seek error on drive X
Ошибка позиционирования на драйвере X
7 Unknown media type in drive X
Неизвестный тип носителя в драйвере X
8 Sector not found on drive X
Не найден сектор на драйвере X
9 Printer out of paper
Нет бумаги на принтере
10 Write fault on drive X
Ошибка записи на драйвере X
11 Read fault on drive X
Ошибка чтения на драйвере X
12 Hardware failure on drive X
Аппаратная неисправность на драйвере X
13 Bad memory image of FAT detected
В FAT обнаружен неверный образ памяти
14 Device access error
Ошибка доступа к устройству
15 Insert diskette in drive X
Вставьте дискету в драйвер X
-----------------------------------------------------------
См. также SysColorAttr, SysMonAttr, SysErrorFunc.
Тип TByteArray Objects
=================================================================
Объявление TByteArray = array[032767] of Byte;
Функция Тип массива байт для общего использования при
приведении типа.
См. также TStringListMaker.
Тип TCommandSet Views
=================================================================
Объявление TCommandSet = set of Byte;
Функция TCommandSet полезен для хранения произвольного
множества, содержащего до 256 команд. Он позволяет
выполнить простое тестирование, соответствует ли
данная команда определенному критерию в программах
обработки событий и позволяет Вам установить маски
команд. Например, методы TView: EnableCommands,
DisableCommands, GetCommands и SetCommands
используют аргументы типа TCommandSet. Множество
команд может быть объявлено и инициализировано,
используя синтаксис Паскаля:
CurCommandSet: TCommandSet = [0255] - [cmZoom, cmClose,
cmResize, cmNext];
См. также cmXXXX, TView.DisableCommands, TView.EnableCommands,
TView.GetCommands, TView.SetCommands.
Тип TDrawBuffer Views
=================================================================
Объявление TDrawBuffer = array[0MaxViewWidth-1] of Word;
Функция Тип TDrawBuffer используется для объявления буферов
для методов Draw различных видимых элементов. Обычно
данные и атрибуты сохраняются и форматируются строка
за строкой в TDrawBuffer, а затем выводятся на экран:
var
B: TDrawBuffer;
begin
MoveChar(B, ' ', GetColor(1), Size.X);
WriteLine(0, 0, Size.X, Size.Y, B);
end;
См. также TView.Draw, MoveBuf, MoveChar, MoveCStr, MoveStr.
Тип TEvent Drivers
=================================================================
Объявление TEvent = record
What: Word;
case Word of
evNothing: ();
evMouse: (
Buttons: Byte;
Double: Boolean;
Where: TPoint);
evKeyDown: (
case Integer of
O: (KeyCode: Word);
1: (CharCode: Byte);
evMessage: (
Command: Word;
case Word of
0: (InfoPtr: Pointer);
1: (InfoLong: Longint);
2: (InfoWord: Word);
3: (InfoInt: Integer);
4: (InfoByte: Byte);
5: (InfoChar: Char);
end;
Функция Тип записи с вариантами TEvent играет фундаментальную
роль в стратегии управления событиями в Turbo Vision.
Внешние события, такие как события от клавиатуры и от
мышки и события-команды, генерируемые взаимодействием
видимых элементов, сохраняются и передаются как
записи TEvent.
См. также evXXXX, HandleEvent методы, GetKeyEvent, GetMouseEvent
Тип TItemList Objects
=================================================================
Объявление TItemList = array[0MaxCollectionSize - 1] of
Pointer;
Функция Массив общих указателей используется внутренне
объектами TCollection.
Тип TMenu Menus
=================================================================
Объявление TMenu = record
Items: PMenuItem;
Default: PMenuItem);
end;
Функция Тип TMenu представляет один уровень дерева меню. Поле
Items указывает на список TMenuItems и поле Default
указывает на умалчиваемый элемент внутри этого списка
(элемент выбирается по умолчанию при открытии этого
меню). Объект TMenuView (потомками которого являются
TMenuBar и TMenuBox) имеет поле Menu, которое
указывает на TMenu. Записи TMenu создаются и
удаляются с помощью подпрограмм NewMenu и DisposeMenu.
См. также TMebuView, TMenuItem, NewMenu, DisposeMenu,
TMenuView.Menu поля
Тип TMenuItem Menus
=================================================================
Объявление TMenuItem = record
Next: PMenuItem;
Name: PString;
Command: Word;
Disabled: Boolean;
KeyCode: Word;
HelpCtx: Word;
case Integer of
0: (Param: PString);
1: (SubMenu: PMenu);
end;
end;
Функция Тип TMenuItem представляет элемент меню, который
может быть обычным элементом, подменю или
строкой-разделителем. Next указывает на следующий
TMenuItem в списке элементов меню, или равен nil,
если это последний элемент. Name указывает на строку,
содержащую имя элемента меню или равен nil, если
элемент меню является строкой-разделителем. Command
содержит событие-команду (см. константы
cmXXXX) генерируемую при выборе элементов меню или 0,
если элемент меню представляет подменю. Disable -
True, если элемент меню запрещен, False, в противном
случае. KeyCode содержит скан-код горячей клавиши
связанной с элементом меню или 0, если элемент меню
не имеет горячей клавиши. HelpCtx содержит номер
контекстной подсказки элемента меню (значение
hcNoContext указывает, что элемент меню не имеет
контекстной подсказки). Если элемент - меню это
обычный элемент, Param содержит указатель на параметр
строки (отображаемый справа от элемента в TMenuBox)
или nil, если элемент не имеет параметра строки. Если
элемент меню - это подменю, Submenu указывает на
структуру подменю. Записи TMenuItem создаются
использованием функций NewItem, NewLine и NewSubmenu.
См. также TMenu, TMebuView, NewItem, NewLine, NewSubMenu
Тип TMenuStr Menus
=================================================================
Объявление TMenuStr = string[31];
Функция Тип строки, используемый NewItem и NewSubMenu.
Максимальный размер заголовка элемента меню - 31
символ.
См. также NewItem, NewSubMenu
Тип TPalette Views
=================================================================
Объявление TPalette = String;
Функция Тип строки, используемый для объявления палитр Turbo
Vision.
См. также GetPalette методы
Тип TScrollChars Views
=================================================================
Объявление TScrollChars = array[04] of Char;
Функция Массив, представляющий символы, используемые для
рисования TScrollBar.
См. также TScrollBar
Тип TSItem Dialogs
=================================================================
Объявление TSItem = record
Value: PString;
Next: PSItem;
end;
Функция Тип записи TSItem обеспечивает односвязный список из
PString. Подобные списки могут быть полезны во многих
программах на Turbo Vision, где не требуется полная
гибкость коллекций строк (см. TCluster, например).
Функция NewSItem предназначена для добавления записей
в список TSItem.
Тип TStatusDef Menus
=================================================================
Объявление TStatusDef = record
Next: PStatusDef;
Min, Max: Word;
Items: PStatusItem;
end;
Функция Тип TStatusDef представляет определение строки
статуса. Поле Next указывает на следующий TStatusDef
в списке строк статуса или nil, если это последняя
строка статуса. Min и Max определяют диапазон
контекста подсказки, который соответствует строке
статуса. Items указывает на список элементов строки
статуса или nil, если в строке статуса нет элементов.
Объект TStatusLine (строка статуса) имеет указатель
на список записей TStatusDef и будет всегда
отображать первую строку статуса, для которой текущая
контекстная подсказка находится внутри диапазона Min
и Max. Программа Turbo Vision автоматически
корректирует строку статуса, вызывая
TStatusLine.Update из TProgram.Idle. Записи
TStatusDef создаются использованием функции
NewStatusDef.
См. также TStatusLine, TProgram.Idle, функция NewStatusDef
Тип TStatusItem Menus
=================================================================
Объявление TStatusITEm = record
Next: PStatusItem;
Text: PString;
KeyCode: Word;
Command: Word;
end;
Функция Тип TStatusItem представляет элемент строки статуса,
который может быть видим или невидим. Next указывает
на следующий TStatusItem в списке элементов строки
статуса или nil, если это последний элемент. Text
указывает на строку, содержащую надпись элемента
статуса (такую как 'Alt-X Exit') или nil, если
элемент статуса невидим (в таком случае элемент
служит только для определения горячей клавиши).
KeyCode содержит скан-код горячей клавиши связанной с
элементом статуса или 0, если элемент статуса не
имеет горячей клавиши. Command содержит
команду-событие (см. константы cmXXX) генерируемую
при выборе элемента статуса.
Функция записи TStatusItem не только в определении
визуализации строки статуса, она также используется
для определения горячей клавиши, чьи коды
автоматически отображаются в команды. Метод TProgram.
GetEvent вызывает TStatusLine.HandleEvent для всех
событий evKeyDown. TStatusLine.HandleEvent сканирует
текущую строку статуса на элементы, содержащие данный
код клавиши и, если один из них найден, он
преобразует это событие evKeyDown в событие evCommand
со значением Command данным в TStatusItem.
Записи TStatusItem создаются использованием функции
NewStatusKey.
См. также TStatusLine, NewStatusKey, TStatusLine.HandleEvent
Тип TStreamRec Objects
=================================================================
Объявление TStreamRec = ^TStreamRec;
TStreamRec = record
ObjType: Word;
VmLink: Word;
Load: Pointer;
Store: Pointer;
Next: Word;
end;
Функция Тип объекта Turbo Vision должен быть зарегистрирован
TStreamRec, до его загрузки или сохранения на объекте
TStream. Подпрограмма RegisterTypes регистрирует тип
объекта записью TStreamRec.
Поля в регистрационной записи потока определены:
Таблица 14.33. Поля записи потока.
--------------------------------------------------------------
Поле Содержимое
--------------------------------------------------------------
ObjType Уникальный числовой идентификатор для типа объекта
VmtLine Связь типа объекта с элементом VMT
Load Указатель на констрактор Load объектного типа
Store Указатель на метод Store объектного типа
Next Указатель на следующую TStreamRec
--------------------------------------------------------------
Turbo Vision резервирует значения идентификаторов
объектных типов от 0 до 999 для внутреннего
использования. Программист может определить свои
значения в диапазоне от 1,000 до 65,535.
По соглашению, tStreamRec для типа объекта Txxxx
называется Rxxxx. Например, TStreamRec для типа
TCalculator называется RCalculator, как показано в
следующем коде:
type
TCalculator = object(TDialog)
constructor Load(var S: TStream);
procedure Store(var S: TStream);
.
end;
const
RCalculator: TStreamRec = (
ObjType: 2099;
VmtLink: Ofs(TypeOf(TCalculator)^);
Load: @TCalculator.Load;
Store: @TCalculator.Store);
begin
RegisterType(RCalculator);
.
end;
См. также RegisterType
Тип TStrIndex Objects
=================================================================
Объявление TStrIndex = array[09999] of TStrIndexRec;
Функция Используется внутренне TStringList и TStrListmaker.
Тип TStrIndexRec Objects
=================================================================
Объявление TStrIndexRec = record
Key, Count, Offset: Word;
end;
Функция Используется внутренне TStringList и TStrListmaker.
Тип TSysErrorFunc Drivers
=================================================================
Объявление TSysErrorFunc = function(ErrorCode: Integer; Drive:
Byte): Integer;
Функция Определяет тип и функцию обработчика системной
ошибки.
См. также SysErrorFunc, SystemError, InitSysError, DoneSysError
Тип TTerminalBuffer TextView
=================================================================
Объявление TTerminalBuffer = array[065519] of Char;
Функция Используется внутренне TTerminal.
См. также TTerminal
Тип TTitleStr Views
=================================================================
Объявление TTitleStr = string[80];
Функция Используется для объявления строк текста для
заголовков окон.
См. также TWindow.Title
Тип TVideoBuf Views
=================================================================
Объявление TVideoBuf = array[03999] of Word;
Функция Используется для объявления видеобуферов.
См. также TGroup.Buffer
Тип TWordArray Objects
=================================================================
Объявление TWordArray = array[016383] of Word;
Функция Тип массива слов для общего использования.
Константы wfXXXX Views
=================================================================
Функция Эти мнемоники определяют биты в поле Flags объектов
TWindow. Если биты установлены, окно будет иметь
соответствующие атрибуты: окно может перемещаться,
изменять размер, закрываться или масштабироваться.
Значения Флаги окна определены так:
+ TWindow.Flags +
| |
msb lsb
+=+=+=+=+=+=+=+=+
+++=+=+++++++++++
+--+--+ | | | +- wfMove = $01
| | | +--- wfGrow = $02
Неопределены| +----- wfClose = $04
+------- wfZoom = $08
Таблица 14.34. Константы флагов окна.
------------------------------------------------------------------
Константа Значение Назначение
------------------------------------------------------------------
wfMove $01 Окно можно перемещать
wfGrow $02 Можно изменять размеры окна соответствующей
кнопкой в левом правом углу
wfClose $04 Рамка окна имеет закрывающую кнопку
wfZoom $08 Рамка окна имеет кнопку масштабирования
------------------------------------------------------------------
Если отдельный бит установлен, соответствующая
возможность подключается, в противном случае, эта
возможность запрещена.
См. также TWindows.Flags
Константa wnNoNumber Views
=================================================================
Объявление wnNoNumber = 0;
Функция Если поле TWindow.Number содержит эту константу, это
указывает, что окно не может иметь номера и не может
быть выбрано через Alt-номер. Если поле Number между
1 и 9, номер окна отображается и выбор по Alt-номер
доступен.
См. также TWindow.Number
Тип WordRec Objects
=================================================================
Объявление WordRec = record
Lo, Hi: Byte;
end;
Функция Утилитная запись, позволяющая доступ к младшему и
старшему биту слова.
См. также LongRec
Константы wpXXXX Views
=================================================================
Функция
Эти константы определяют три стандартных цвета,
отражая их назначение. По умолчанию, объект TWindow
имеет палитру wpBlueWindow. По умолчанию, объект
TDialog имеет палитру wpGrayWindow.
Значения Три стандартных палитры окна определены:
Таблица 14.35. Стандартные палитры окна.
--------------------------------------------------------------
Константа Значение Назначение
--------------------------------------------------------------
wpBlueWindow 0 Желтый на голубом
wpCuanWindow 1 Синий на бирюзовом
wpGrayWindow 2 Черный на сером
--------------------------------------------------------------
См. также TWindow.Palette, TWindow.GetPalette
Назад | Содержание