Эта глава описывает все элементы Turbo Vision, которые не являются частью иерархии стандартных объектов Turbo Vision. Все стандартные объекты описаны в главе 13. Элементы этой главы включают типы, константы, переменные, процедуры и функции, определенные в модулях Turbo Vision. Типичный элемент главы выглядит так:Процедура Sample Модуль
================================================================= Объявление procedure Sample(AParameter); Функция Sample выполняет ряд полезных функций с параметром, AParameter. См. также Функция ExampleПроцедура Abstract Objects
================================================================= Объявление procedure Abstract; Функция Вызов этой процедуры завершает программу с ошибкой времени выполнения 211. При реализации абстрактных типов объекта, используйте вызовы Abstract в тех виртуальных методах, которые должны быть перекрыты в порожденных типах. Это предотвратит любые попытки использования экземпляров абстрактного типа. См. также "Абстрактные методы" в главе 3.Переменная Application App
================================================================= Объявление Application: PApplicaton = nil; Функция Переменная Application устанавливается в @Self в начале TProgram.Init (вызывается в TApplication.Init) и очищается в nil в конце TProgram.Done (вызывается в TApplication.Done). Поэтому, во время выполнения программы на Turbo Vision, Application указывает на объект-программу. См. также TProgram.InitПеременная AppPalette App
================================================================= Объявление AppPalette: Integer = apColor; Функция Выбирает одну из 3 доступных в программе палитр (apColor, apBlackWhite, apMonochrome). AppPalette инициализируется TProgram.InitScreen в зависимости от текущего режима экрана и используется TProgram.GetPalette для возврата палитры. Вы можете перекрыть TProgram.InitScreen, чтобы изменить выбор палитры по умолчанию. См. также TProgram.InitScreen, константы apXXXXКонстанты apXXXX App
================================================================= Значения Определены следующие константы палитры: Таблица 14.1. Константы палитры. ------------------------------------------------------------ Константа Значение Назначение ------------------------------------------------------------ apColor 0 Палитра для цветного монитора apBlackWhite 1 Палитра для LCD монитора apMonochrome 2 Палитра для монохромного монитора ------------------------------------------------------------ Функция Константы, начинающиеся с ap, используются для указания, с какой из 3 стандартных палитр будет работать программа на Turbo Vision. Три палитры используются для цветного, черно-белого и монохромного дисплеев.Процедура AssignDevice TextView
================================================================= Объявление procedure AssignDevice(var T: Text; Screen: PTextDevice); Функция Связывает текстовый файл с TTextDevice. AssignDevice работает аналогично стандартной процедуре Assign за исключением того, что указывается не имя файла. Вместо этого, текстовый файл связывается с TTextDevice данным в Screen (запоминая Screen в первых 4 байтах поля UserData в TextRec(T). Последовательность операций В/В для текстового файла будет читать и писать из TTextDevice, используя виртуальные методы StrRead и StrWrite. Поскольку TTextDevice это абстрактный тип, параметр Screen обычно указывает на образец TTerminal, который реализует полную функциональность видимого элемента TTY подобного скроллинга. См. также TTextDevice; TextRecКонстанты bfXXXX Dialogs
================================================================= Значения Определены слудующие флаги кнопки: Таблица 14.2. ------------------------------------------------------------ Константа Значение Назначение ------------------------------------------------------------ bfNormal $00 Нормальная кнопка bfDefault $01 Кнопка по умолчанию bfLeftJust @02 Метка кнопки выровнена влево ------------------------------------------------------------ Функция Комбинация этих значений передается в TButton.Init для определения вновь созданного стиля кнопки. bfNormal указывает на нормальную не умалчиваемую кнопку. bfDefault указывает что кнопка будет кнопкой по умолчанию. Обязанность программиста, обеспечить чтобы кнопка была единственной умалчиваемой кнопкой в TGroup. Значение bfLeftJust может быть добавлено к bfDefault или bfNormal и воздействует на позицию отображаемого текста внутри кнопки: если очищено, то метка центрируется; если установлено, то метка выравнивается влево. См. также TButton.Flags, TButton.MakeDefault, TButton.DrawПеременная ButtonCount Drivers
================================================================= Объявление ButtonCount: Byte = 0; Функция ButtonCount хранит число кнопок мышки или 0, если мышка не инсталлирована. Вы можете использовать эту переменную для определения доступна ли поддержка мышки. Значение устанавливается в иницилизационном коде Drivers и не может быть изменено.Переменная CheckSnow Drivers
================================================================= Объявление CheckSnow: Boolean; Функция CheckSnow выполняет функцию одноименного флага стандартного модуля Turbo Pascal - Crt. Проверка снега, замедляющая вывод на экран, требуется только для некоторых старых адаптеров CGA. См. также InitVideoПроцедура ClearHistory HistList
================================================================= Объявление procedure ClearHistory; Функция Удаляет все строки из всех списков истории.Процедура ClearScreen Drivers
================================================================= Объявление procedure ClearScreen; Функция Очищает экран. ClearScreen предполагает, что вначале был вызван InitVideo. Вам редко потребуется использовать эту процедуру, как это объяснено в описанни InitVideo. См. также InitVideoКонстанты cmXXXX Views
================================================================= Функция Эти константы представляют предопределенные команды Turbo Vision. Они передаются в поле TEvent.Command событий evMessage(evCommand и evBroadcast) и заставляют методы HandleEvent стандартных объектов Turbo Vision выполнять различные задачи. Turbo Vision резервирует значения констант от 0 до 99 и от 256 до 999 для своих целей. Обработчики событий стандартных объектов Turbo Vision реагируют на эти предопределенные константы. Прграммисты могут определить свои собственные константы в диапазонах от 100 до 255 и от 1,000 до 65,535 без конфликтов с предопределенными командами. Значения Следующие стандартные команды определены в Turbo Vision и используются стандартными объектами Turbo Vision: Таблица 14.3. Коды стандартных команд. ------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmValid 0 Передается в TView.Valid для проверки вновь созданных образцов видимых элементов cmQuit 1 Заставляет TProgram.HandleEvent вызывать EndModal (cmQuit), завершая программу. Строка статуса или одно из меню обычно содержат элемент, который переводит kbAltX и cmQuit. cmError 2 Не обрабатывается никаким объектом. Может быть использована для представления нереализованных или неподдерживаемых команд. cmMenu 3 Заставляет TMenuView.HandleEvent вызывать ExecView для процесса выбора меню, в результате чего может быть сгенерирована новая команда с помощью PutEvent. cmClose 4 Обрабатывается TWindow.HandleEvent, если поле InfoPtr записи события установлено в nil или указывает на окно. Если окно модальное, то посредством PutEvent генерируется evCommand со значением из cmCancel. Если окно немодальное, то то вызывается метод Close при условии что окно поддерживает закрытие (смотри флаг wfClose). Отметка на закрывающей кнопке окна генерирует событие evCommand с Command из cmClose и InfoPtr, который указывает на окно. Строка статуса или одно из меню обычно содержит элемент, который переводит kbAltF3 в cmClose. cmZoom 5 Заставляет TWindow.HandleEvent вызывать TWindow.Zoom, если окно поддерживает масштабирование (смотри флаг wfZoom) и если поле InfoPtr записи события установлено в nil или указывает на окно. Отметка на кнопке масштабирования окна или двойная отметка на полосе заголовка окна генерирует событие evCommand с Command из cmZoom и InfoPtr, который указывает на окно. Строка статуса или одно из меню обычно содержит элемент, который переводит kbF5 в cmZoom. cmResize 6 Заставляет TWindow.HandleEvent вызывать TView.DragView, если окно поддерживает изменение размеров (смотри флаги wfMove и wfGrow). Строка статуса или одно из меню обычно содержит элемент, который переводит kbCtrlF5 в cmResize. cmNext 7 Заставляет TDeskTop.HandleEvent сдвигать последнее окно на панели экрана на передний план. Строка статуса или одно из меню обычно содержит элемент, который переводит kbF6 в cmNext. cmPrev 8 Заставляет TDeskTop.HandleEvent сдвигать первое окно на панели экрана на самый задний план. Строка статуса или одно из меню обычно содержит элемент, который переводит kbShiftF6 в cmPrev. ------------------------------------------------------------------ Следующие стандартные команды используются для определения поведения по умолчанию объектов диалогового окна: Таблица 14.4. Стандартные команды диалогового окна. ------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmOK 10 Была нажата кнопка OK cmCancel 11 Диалоговое окно было отменено кнопкой Cancel, закрывающей кнопкой или клавишей Enter cmYes 12 Была нажата кнопка Yes cmNo 13 Была нажата кнопка No cmDefault 14 Была нажата кнопка по умолчанию ------------------------------------------------------------------ События с командами cmOK, cmCancel, cmYes или cmNo завершают модальный диалог TDialog.HandleEvent и возвращают значение команды (вызывая EndModal). Модальный диалог обычно содержит по крайней мере один TButton с одним из этих значений команд. TDialog.HandleEvent будет генерировать команду-событие cmCancel в ответ на событие от клавиатуры kbEsc. Команда cmDefault заставляет TButton.HandleEvent для умалчиваемой кнопки (см. флаг bfDefault) симулировать нажатие кнопки. TDialog.HandleEvent будет генерировать событие команды cmDefault в ответ на событие клавиатуры kbEnter. Определены следующие стандартные команды для использования стандартными видимыми элементами: Таблица 14.5. Стандартные команды видимых элементов. ------------------------------------------------------------------ Команда Значение Назначение ------------------------------------------------------------------ cmReceivedFocus 50 TView.SetState использует функцию Message cmReleasedFocus 51 для передачи события evBroadcast с одним из этих значений в свой TView.Owner, как только sfFocused изменяется. InfoPtr события указывает на сам видимый элемент. Это информирует любой равный видимый элемент, что видимый элемент получил или освободил активность и что они должны корректировать себя соответственно. Объект Tlabel, например, реагирует на эти команды, включая или выключая свою подсветку. cmCommandSetChanged 52 Метод TProgram.Idle генерирует событие evBroadcast как только он обнаружит изменение в текущем наборе команд (вызывая методы EnableCommands, DesableCommands или SetCommands для TView). Общее сообщение cmCommandSetChanged посылается в HandleEvent каждого видимого элемента иерархии (если только их TView.EventMask специфически не маскируют события evBroadcast). Если изменения в наборе команд затрагивают появление видимого элемента, он должен реагировать на cmCommandSetChanged своей перерисовкой. Объекты TBut ton, TMenuView и TStatusLine, например, реагируют на эту команду, перерисовывая себя. cmScrollBarChanged 53 TScrollBar использует функцию Message для cmScrollBarClicked 54 передачи события evBroadcast с одним из этих значений в свой TView.Owner, как только мышка отмечает на полосе скроллинга. InfoPtr события указывает на полосу скроллинга. Общие сообщения создаются любыми равными видимыми элементами, управляемыми полосой скроллинга, такими как объекты TScroller и TListViewer. cmSelectWindowNum 55 Заставляет TWiondow.HandleEvent вызывать TView.Select, если InfoInt записи события соответствует TWindow.Number. TProgram.HandleEvent реагирует на события от клавиатуры от Alt-1 до Alt-9 общим сообщением cmSelectWindowNum с InfoInt от 1 до 9. cmRecordHistory 60 Заставляет объект THistory "записывать" текущее содержимое объекта TInputLine. TButton посылает общее сообщение cmRecordHistory своему владельцу, когда он выбран, в результате, заставляя "записывать" все объекты THistory в диалоговом окне. ------------------------------------------------------------------ См. также TView.HandleEvent, TCommandSetКонстанты coXXXX Objects
================================================================= Функция Константы coXXXX передаются как параметр Code в метод TColection.Error, когда TCollection обнаруживает ошибку во время операции. Значения Следующие стандартные коды ошибок определены для всех коллекций Turbo Vision: Таблица 14.6. Коды ошибок коллекции. ------------------------------------------------------------------ Код ошибки Значение Назначение ------------------------------------------------------------------ coIndexError -1 Индекс вышел за диапазон. Параметр Info передает в метод Error содержимое неверного индекса. coOverflow -2 Переполнение коллекции. TCollection.SetLimit недостаточно для расширения коллекции. Параметр Info передает в метод Error запрашиваемый размер коллекции. ------------------------------------------------------------------ См. также TCollectionФункция CStrLen Drivers
================================================================= Объявление function CStrLen(S: String): Integer; Функция Возвращает длину строки S, где S это управляющая строка, использующая символы "~" для указания символов короткого набора. "~" исключаются из длины строки, поскольку они будут появляться на экране. Например, для строки '~B~roccoly', CStrLen возвращает 8. См. также MoveCStrПеременная CtrlBreakHit Drivers
================================================================= Объявление CtrlBreakHit: Boolean = False; Функция Драйвер обработки прерываний от клавиатуры Turbo Vision всегда устанавливает ее в True, когда нажата Ctrl-Break. Это позволяет программам на Turbo Vision перехватывать и реагировать на Ctrl-Break. Флаг может быть очищен в любое время установкой его в False. См. также SaveCtrlBreakФункция CtrlToArrow Drivers
================================================================= Объявление function CtrlToArrow(KeyCode: Word): Word; Функция Преобразует управляющие WordStar-совместимые коды клавиатуры в соответствующие коды клавиш курсора. Если младший байт KeyCode соответствует одному из значений управляющих клавиш в таблице 14.7, результатом будет соответствующая константа kbXXXX. В противном случае KeyCode возвращается неизмененным. Таблица 14.7. Преобразование управляющих клавиш. ------------------------------------------------------------ Клавиша Lo(KeyCode) Результат ------------------------------------------------------------ Ctrl-A $01 kbHome Ctrl-D $04 kbRight Ctrl-E $05 kbUp Ctrl-F $06 kbEnd Ctrl-G $07 kbDel Ctrl-S $13 kbLeft Ctrl-V $16 kbIns Ctrl-X $18 kbDown ------------------------------------------------------------Переменная CursorLines Drivers
================================================================= Объявление CursorLines: Word; Функция Уставливает начальную и конечную строки курсора с помощью InitVideo. Формат предполагает функцию 1 прерывания BIOS $10 для установки типа курсора. См. также InitVideo, TView.ShowCursor, TView.HideCursor, TView.BlockCursor, Tview.NormalCursorПеременная DeskTop App
================================================================= Объявление DeskTop: PDeskTop = nil; Функция Сохраняет указатель на TDeskTop программы. Переменная DeskTop инициализируется TProgram.InitDeskTop, которая вызывается TProgram.Init. Окна и диалоговые окна обычно вставляются (TGroup.Insert) или выполняются (TGroup.ExecView) на DeskTop.Процедура DisposeMenu Menus
================================================================= Объявление procedure DisposeMenu(Menu: PMenu); Функция Освобождает все элементы указанных меню (и все их подменю). См. также Тип TMenuПроцедура DisposeStr Objects
================================================================= Объявление procedure DisposeStr(P:String); Функция Освобождает строки, распределенные в куче с помощью функции NewStr. См. также NewStrКонстанты dmXXXX Views
================================================================= Значения Биты DragMode определены так: Рис. 14.1. Флаги режима Drag. +--- DragMode --+ msb lsb +-+-+-+----------- dmLimitAll = $F0 +++++++++=+=+=+=+ +++++++++=+=+++++ | | | | | +--- dmDragMove = $01 | | | | +----- dmDragGrow = $02 | | | +----------- dmLimitLoX = $10 | | +------------- dmLimitLoY = $20 | +--------------- dmLimitHiX = $40 +----------------- dmLimitHiY = $80 Функция Эти константы используются для компоновки параметра Mode метода TView.DragView. Они указывают разрешены ли движение и/или изменение размера и как интерпретировать параметр Limits. Константы определены так: Таблица 14.8. Константы режима Drag. ------------------------------------------------------------ Константа Назначение ------------------------------------------------------------ dmDragMove Позволяет видимому элементу перемещаться. dmDragGrow Позволяет видимому элементу изменять размер. dmLimitLoX Левая сторона видимого элемента не может выходить за Limits. dmLimitLoY Верхняя сторона видимого элемента не может выходить за Limits. dmLimitHiX Правая сторона видимого элемента не может выходить за Limits. dmLimitHiY Нижняя сторона видимого элемента не может выходить за Limits. dmLimitAll Никакая часть видимого элемента не может выходить за Limits. ------------------------------------------------------------Процедура DoneEvents Drivers
================================================================= Объявление procedure DoneEvents; Функция Завершает монитор событий Turbo Vision, отключая обработчик прерываний мышки. Вызывается автоматически при вызове TApplication.Done. См. также TApplication.Done, InitEventsПроцедура DoneHistory Drivers
================================================================= Объявление procedure DoneHistory; Функция Освобождает блок истории, распределенный InitHistory. Вызывается автоматически при вызове TApplication.Done. См. также Процедура InitHistory, TApplication.DoneПроцедура DoneMemory Memory
================================================================= Объявление procedure DoneMemory; Функция Завершает монитор памяти Turbo Vision, освобождая все буфера, распределенные через GetBufMem. Вызывается автоматически при вызове TApplication.Done. См. также TApplication.Done, InitMemoryПроцедура DoneSysError Drivers
================================================================= Объявление procedure DoneSysError; Функция Завершает обработчик системных ошибок Turbo Vision, восстанавливая вектора прерываний 09H, 1BH, 21H, 23H, 24H и восстанавливая состояние Ctrl-Break в DOS. Вызывается автоматически при вызове TApplication.Done. См. также TApplication.Done, InitSysErrorПроцедура DoneVideo Drivers
================================================================= Объявление procedure DoneVideo; Функция Завершает монитор экрана Turbo Vision, восстанавливая начальный режим экрана (StartupMode), очищая экран и восстанавливая курсор Вызывается автоматически при вызове TApplication.Done. См. также TApplication.Done, InitVideo, переменная StartupModeПеременная DoubleDelay Drivers
================================================================= Объявление DoubleDelay: Word = 8; Функция Определяет временной интевал (в 1/18.2 секундах) между нажатиями кнопки мышки для порядка различия двойного нажатия и двух отдельных нажатий. Используется GetMouseEvent для генерации события Double, если нажатия произошли в этом временном интервале. См. также TEvent.Double, GetMouseEventПеременная EmsCurHandle Objects
================================================================= Объявление EmsCurhandle: Word = $FFFF; Функция Содержит текущий обработчик EMS, отображенный TEmsStream в нулевую физическую страницу EMS. TEmsStream избегает дорогих вызовов переотображения EMS подкачкой состояния EMS. Если Ваша программа использует EMS для других целей, установите EmsCurHandle и EmsCurPage в $FFFF перед использованием TEmsStream - это будет вынуждать TEmsStream восстанавливать свое отображение. См. также TEmsStream.HandleПеременная EmsCurPage Objects
================================================================= Объявление EmsCurpage: Word = $FFFF; Функция Содержит текущий номер логической страницы EMS, отображенной TEmsStream в нулевую физическую страницу EMS. TEmsStream избегает дорогих вызовов переотображения EMS подкачкой состояния EMS. Если Ваша программа использует EMS для других целей, установите EmsCurHandle и EmsCurPage в $FFFF перед использованием TEmsStream - это будет вынуждать TEmsStream восстанавливать свое отображение. См. также TEmsStream.PageКонстанты evXXXX Drivers
================================================================= Функция Эти мнемоники обозначают типы событий для обработчиков событий Turbo Vision. Константы evXXXX используются в нескольких местах: в поле What записи события, в поле EventMask видимого элемента и в переменных PositionalEvents и FocusedEvents. Значения Следующие значения флагов событий обозначают стандартные типы событий: Таблица 14.9. Флаги стандартных событий. ------------------------------------------------------------ Константа Значение Назначение ------------------------------------------------------------ evMouseDown $0001 Кнопка мышки нажата evMouseUp $0002 Кнопка мышки отпущена evMouseMove $0004 Мышка изменила положение evMouseAuto $0008 Периодическое событие до тех пор, пока нажата кнопка мышки evKeyDown $0010 Клавиша нажата evCommand $0100 Событие-команда evBroadcast $0200 Событие-общее сообщение ------------------------------------------------------------ Следующие константы могут использоваться для маскирования типов событий: Таблица 14.10. Маски стандартных событий. ------------------------------------------------------------ Константа Значение Назначение ------------------------------------------------------------ evNothing $0000 Событие уже обработано evMouse $000F Событие от мышки evKeyboard $0010 Событие от клавиатуры evMessage $FF00 Событие-сообщение (команда, общее сообщение или определено пользователем). ------------------------------------------------------------ Биты маски события определены так: Рис. 14.2. Отображение битов маски события. +------ Флаги события ---------+ msb lsb +-+-+-+-+-+-+-+------------------- evMessage = $FF00 | | | | | | | | +----------- evKeyboard = $0010 | | | | | | | | | +-+-+-+--- evMouse = $000F +++++++++++++++++=+=+=+++++++++++ +=+=+=+=+=+=+++++=+=+=+++++++++++ | | | | | | +--- evMouseDown = $0001 | | | | | +----- evMouseUp = $0002 | | | | +------- evMouseMove = $0004 | | | +--------- evMouseAuto = $0008 | | +----------- evKeyDown = $0010 | +------------------- evCommand = $0100 +--------------------- evBroadcast = $0200 Маски стандартных событий могут быть использованы для быстрого определения, принадлежит ли событие конкретному семейству событий. Например, if Event.What and evMouse <> 0 then DoMouseEvent; См. также TEvent, TView.EventMask, GetKeyEvent, GetMouseEvent, методы HandleEvent, PositionalEvents, FocusedEvents.Тип FNameStr Objects
================================================================= Объявление FNameStr = String[79]; Функция Строка, содержащая имя файла DOS.Переменная FocusedEvents Views
================================================================= Оъявление FocusedEvents: Word = evKeyboard + evCommand; Функция Определяет классы событий как сфокусированные события. Переменные FocusedEvents и PositionalEvents используются TGroup.HandleEvent для определения, как соотносятся события к подэлементам группы. Если класс события не содержится в FocusedEvents или PositionalEvents, то оно интерпретируется как общее событие. См. также Переменные PositionalEvents, TGroup.HandleEvent, TEvent, константы evXXXX.Процедура FormatStr Drivers
================================================================= Объявление procedure FormatStr(var Result: String; Format: String; var Params); Функция Процедура форматирования строки, которая работает подобно функции языка Си vsprintf. Format включает спецификаторы формата, а Params содержит список параметров. FormatStr выполняет форматированный вывод строки в Result. Параметр Format может содержать любое число спецификаторов формата, для отображения параметров в Params. Формат спецификаторов - %[-][nnn]X, где - % указывает начало спецификатора формата; - [-] необязательный знак минуса, указывающий, что параметр будет выровнен влево (по умолчанию параметры при отображении выравниваются вправо); - [nnn] - необязательный десятичный спецификатор длины в диапазоне 0-255 (0 указывает на отсутствие длины, а не нуль означает, что выводится поле в nnn символов); - Х - символ формата: - 's' означает, что параметр указывает на строку; - 'd' означает десятичное представление LongInt параметра; - 'c' означает, что младший байт параметра - символ; - 'x' означает шестнадцатиричное представление параметра LongInt. - '#'устанавливает индекс параметра в nnn. Например, если параметр указывает на строку, содержащую 'spiny', следующая таблица показывает спецификаторы и их результаты при печати: Таблица 14.11. Спецификаторы формата и их результаты. ----------------------------------------- Спецификатор Результат ----------------------------------------- %6s ' spiny' %-6s 'spiny' %3s 'iny' %-3s 'spi' %06s '0spiny' %-06s 'spiny0' ---------------------------------------- Params - это нетипированный var параметр, содержащий параметры с соответствующимим спецификаторами формата в Format. Params должен быть массивом из LongInt или указателей или записью, содержащей LongInt или указатели. Например, для вывода строки сообщения об ошибке Error in file [file name] at line [line number] Вы должны послать следующую строку в Format: 'Error in file %s at line %d'. Params должен содержать указатель на строку имени файла и Longint, представляющая число строк в файле. Это может быть сделано двумя способами: в массиве или в записи. Следующий пример показывает два типа объявлений и присвоений переменных, оба создают допустимые значения, передаваемые как Params в FormatStr. type ErrMsgRec = record FileName: PString; LineNo: Longint; end; ErrMsgArray = array[01] of Longint; const TemplateMsg = 'Error in file %s at line %d'; var MyFileName: FNameStr; OopsRec: ErrMsgRec; DarnArray: ErrMsgArray; TestStr: String; begin MyFileName := 'WARTHOG.ASM'; with OopsRec do begin FileName := @MyFileName; LineTo := 42; end; FormatStr(TestStr, TemplateMsg, OopsRec); Writeln(TestStr); DarnArray[0] := Longint(@MyFileName); DarnArray[1] := 24; FormatStr(TestStr, TemplateMsg, DarnArray); Writeln(TestStr); end; См. также Функцию SystemError, объект TParamText.Процедура FreeBufMem Memory
================================================================= Объявление procedure FreeBufMem(P: Pointer); Функция Освобождает кэш-буфер, ссылаемый указателем Р. См. также GetBufMem, DoneMemory.Функция GetAltChar Drivers
================================================================= Объявление function GetAltChar(KeyCode: Word): Char; Функция Возвращает символ Ch, для которого Alt-Ch вырабатывает двухбайтовый скан-код, данный в аргументе KeyCode. Эта функция дает обратное к GetAltCode отображение. См. также GetAltCode.Функция GetAltCode Drivers
================================================================= Объявление function GetAltCode(Ch: Char): Word; Функция Возвращает двухбайтовый скан-код, соответствующий Alt-Ch. Эта функция делает обратное к GetAltChar отображение. См. также GetAltChar.Процедура GetBufMem Memory
================================================================= Объявление procedure GetBufMem(var P: Pointer; Size: Word); Функция Распределяет кэш-буфер для Size байт и запоминает указатель на него в Р. Если нет памяти для кэш-буфера запрашиваемого размера, Р устанавливается в nil. Кэш- буфер отличается от обычных блоков кучи (распределяемых с помощью New, GetMem или MemAlloc), в которых они могут размещаться или освобождаться монитором памяти в любое время. Указатель, передаваемый в GetBufMem, становится указателем на кэш-буфер и он (и только он) корректируется, когда буфер перемещается монитором памяти. Если монитор памяти решает освободить буфер, он устанавливает этот указатель в nil. Кэш-буфер может быть освобожден через вызов FreeBufMem. Кэш-буфера будут занимать любое нераспределенное пространство кучи между HeapPtr и HeapEnd, включая область, установленную для пула надежности программы. Turbo Vision использует кэш-буфера для подкачки содержимого объектов TGroup (таких, как окна, диалоговые окна и панель экрана), как только эти объекты устанавливают флаг ofBuffered - это значительно повышает производительность операций перерисовки. См. также FreeBuffMem, InitMemory, TGroup.Draw.Процедура GetKeyEvent Drivers
================================================================= Объявление procedure GetKeyEvent(var Event: TEvent); Функция Проверяет, доступно ли событие от клавиатуры вызовом прерывания BIOS INT 16H. Если клавиша была нажата, Event.What устанавливается в evKeyDown и Event.KeyCode устанавливается в cкан-код клавиши. В противном случае, Event.What устанавливается в evNothing. GetKeyEvent вызывается из TProgram.GetEvent. См. также TProgramm.GetEvent, константы evXXXX, TView.HandleEvent.Процедура GetMouseEvent Drivers
================================================================= Объявление procedure GetMouseEvent(var Event: TEvent); Функция Проверяет, доступно ли событие от мышки из очереди событий от мышки, поддерживаемой обработчиком событий Turbo Vision. Если происходит событие от мышки, Event.What устанавливается в evMouseDown, evMouseUp, evMouseMove или evMouseAuto; Event.Buttons устанавливается в mbLeftButton или mbRightButton; Event.Double устанавливается в True или False; Event. Where устанавливается в позицию мышки в глобальных координатах (соответствующих координатной системе TApplication). Если события от мышки недоступны, Event.What устанавливается в evNothing. GetMouseEvent вызывается из TProgram.GetEvent. См. также TProgram.GetEvent, события evXXXX, методы HandleEvent.Константы gfXXXX Views
================================================================= Функция Эти мнемоники используются для установки полей GrowMode во всех объектах TView и порожденных. Биты, установленные в GrowMode, определяют, как видимый элемент будет изменяться в зависимости от изменений размера его владельца. Значения Биты GrowMode определены как: Рис. 14.3. Биты режима Grow. +--- GrowMode --+ msb lsb +-+-+-+--- gfGrowAll = $0F +=+=+=+=+++++++++ +++=+++++++++++++ +-+-+ | | | | +--- gfGrowLoX = $01 | | | | +----- gfGrowLoY = $02 Неопределены | | +------- gfGrowHiX = $04 | +--------- gfGrowHiY = $08 +----------- gfGrowRel = $10 Таблица 14.12. Определения флага режима Grow. ------------------------------------------------------------------ Константа Назначение ------------------------------------------------------------------ gfGrowLoX Если установлен, то левая сторона видимого элемента будет находиться на одном расстоянии от правой стороны владельца. gfGrowLoY Если установлен, то верхняя сторона видимого элемента будет находиться на одном расстоянии от нижней стороны владельца. gfGrowHiX Если установлен, то правая сторона видимого элемента будет находиться на одном расстоянии от правой стороны владельца. gfGrowHiY Если установлен, то нижняя сторона видимого элемента будет находиться на одном расстоянии от нижней стороны владельца. gfGrowAll Если установлен, то видимый элемент будет сдвигаться вместе с правым нижним углом его владельца. gfGrowRel Для использования с объектами TWindow, которые находятся в панели экрана: видимый элемент будет изменять размер относительно размера владельца. Окно будет обрабатываться соответственно размеру владельца, даже когда происходит переключение между режимами 25 и 43/50 строк. ------------------------------------------------------------------ Заметим, что LowX= левая сторона; LowY = верхняя сторона; HiX = правая сторона; HiY = нижняя сторона. См. также TView.GrowModeКонстанты hcXXXX Views
================================================================= Значения Определены следующие константы контекста подсказки: Таблица 14.13. Константы контекста подсказки. ----------------------------------------- Константа Значение Назначение ----------------------------------------- hcNoContext 0 Контекст не задан hcDragging 1 Объект - перемещаем ----------------------------------------- Функция Значение TView.HelpCtx по умолчанию - hcNoContext, которое указывает, что для видимого элемента нет контекста подсказки. TView.GetHelpCtx возвращает hcDragging, как только видимый элемент становится перемещаемым (это указывается состоянием флага sfDragging). Turbo Vision резервирует для контекста подсказки значения от 0 до 999. Программисты могут определять свои константы в диапазоне от 1,000 до 65,535. См. также TView.HelpCtx, TStatusLine.Update.Процедура HideMouse Drivers
================================================================= Объявление procedure HideMouse; Функция Курсор мышки изначально видим после вызова InitEvents. HideMouse прячет мышку и увеличивает внутренний "счетчик мышки" в драйвере мышки. ShowMouse будет уменьшать этот счетчик и показывать курсор мышки, когда счетчик становится равен 0. Таким образом, вызовы HideMouse и ShowMouse могут быть вложенными, но всегда должны быть сбалансированы. См. также InitEvents, DoneEvents, ShowMouseПеременная HiResScreen Drivers
================================================================= Объявление HiResScreen: Boolean; Функция Устанавливается в True с помощью InitVideo, если экран поддерживает режим 43/50 строк (EGA/VGA); в противном случае устанавливается в False. См. также InitVideoПроцедура HistoryAdd HistList
================================================================= Объявление procedure HistoryAdd(Id: Byte; var Str: String); Функция Добавляет строку Str в список истории, указываемый с помощью Id.Переменная HistoryBlock HistList
================================================================= Объявление HistoryBlock: Pointer = nil; Функция Указывает на буфер, вызывающий блок истории и используемый для хранения строк истории. Размер блока определяется посредством HistorySize. Указатель устанавливается в nil до тех пор пока не будет установлен с помощью InitHistory. Его значение нельзя изменить. См. также процедуру InitHistory, переменную HistorySize.Функция HistoryCount HistList
================================================================= Объявление function HistoryCount(Id: Byte): Word; Функция Возвращает количество строк в списке истории, соответствующее номеру ID.Переменная HistorySize HistList
================================================================= Объявление HistorySize: Word = 1024; Функция Задает размер блока истории, используемый администратором списка истории для хранения значений, введенных в строках ввода. Размер фиксируется посредством InitHistory при запуске программы. По умолчанию размер блока равен 1К, но может быть изменен перед вызовом InitHistory. Значение нельзя изменять после вызова InitHistory. См. также процедуру InitHistory, переменную HistoryBlock.Функция HistoryStr HistList
================================================================= Объявление function HistoryStr(Id: Byte; Index: Integer): String; Функция Возвращает Index строку в списке истории, соответствующую номеру ID.Переменная HistoryUsed HistList
================================================================= Объявление HistoryUsed: Word = 0; Функция Используется внутри администратором списка истории для указания на смещение внутри блока истории. Это значение нельзя изменить.Процедура InitEvents Drivers
================================================================= Объявление procedure InitEvents; Функция Инициализирует монитор событий Turbo Vision, подключая обработчик прерываний мышки и показывая мышку. Вызывается автоматически TApplication.Init. См. также DoneEvents.Процедура InitHistory HistList
================================================================= Объявление InitHistory; Функция Вызывается с помощью TApplication.Init для распределения блока памяти в куче, используемом монитором списка истории. Размер блока определяется переменной HistorySize. После вызова InitHistory переменная HistoryBlock указывает на начало блока. См. также TProgram.Init, процедуру DoneHistory.Процедура InitMemory Memory
================================================================= Объявление procedure InitMemory; Функция Инициализирует монитор памяти Turbo Vision, инсталлируя функцию объявления кучи в HeapError. Вызывается автоматически посредством TApplication.Init. См. также DoneMemory.Процедура InitSysError Drivers
================================================================= Объявление procedure InitSysError; Функция Инициализирует обработчик системных ошибок Turbo Vision, переопределяя вектора прерываний 09H, 1BH,21H, 23H, 24H и очищая состояние Ctrl-Break в DOS. Вызывается автоматически посредством TApplication.Init. См. также DoneSysError.Процедура InitVideo Drivers
================================================================= Объявление procedure InitVideo; Функция Инициализирует монитор экрана Turbo Vision. Сохраняет текущий режим экрана в StartupMode и переключает экран в режим, указанный в ScreenMode. Переменные ScreenWidth, ScreenHeight, HiResScreen, CheckSnow, ScreenBuffer и CursorLines корректируются соответственно. Режим экрана позднее может быть изменен использованием SetVideoMode. InitVideo вызывается автоматически посредством TApplication.Init. См. также DoneVideo, SetVideoMode, smXXXX.Константы kbXXXX Drivers
================================================================= Функция Два множества констант, начинающихся с "kb" связаны с клавиатурой. Значения Следующие значения определяют состояние клавиатуры и могут быть использованы при проверке регистров Shift клавиатуры, которое запоминается в байте с абсолютным адресом $40:$17. Например, var ShiftState: Byte absolute $40:$17; . if ShiftState and kbAltShift <> 0 then AltKeyDown; Таблица 14.14. Состояние клавиатуры и маски Shift. ------------------------------------------------------------------ Константа Значение Назначение ------------------------------------------------------------------ kbRightShift $0001 Установлено, если правый Shift нажат kbLeftShift $0002 Установлено, если левый Shift нажат kbCtrlShift $0004 Установлено, если Ctrl нажат kbAltShift $0008 Установлено, если Alt нажат kbScrollState $0010 Установлено, если клавиатура в состоянии ScrollLock kbNumState $0020 Установлено, если клавиатура в состоянии NumLock kbCapsState $0040 Установлено, если клавиатура в состоянии CapsLock kbInsState $0080 Установлено, если клавиатура в состоянии InsLock ------------------------------------------------------------------ Таблица 14.15. Коды Alt-буква. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbAltA $1E00 kbAltN $3100 kbAltB $3000 kbAltO $1800 kbAltC $2E00 kbAltP $1900 kbAltD $2000 kbAltQ $1000 kbAltE $1200 kbAltR $1300 kbAltF $2100 kbAltS $1F00 kbAltG $2200 kbAltT $1400 kbAltH $2300 kbAltU $1600 kbAltI $1700 kbAltV $2F00 kbAltJ $2400 kbAltW $1100 kbAltK $2500 kbAltX $2D00 kbAltL $2600 kbAltY $1500 kbAltM $3200 kbAltZ $2C00 ----------------------------------------------------------- Таблица 14.16. Коды специальных клавиш. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbAltEqual $8300 kbEnd $4F00 kbAltMinus $8200 kbEnter $1C0D kbAltSpace $0200 kbEsc $011B kbBack $0E08 kbGrayMinus $4A2D kbCtrlBack $0E7F kbHome $4700 kbCtrlDel $0600 kbIns $5200 kbCtrlEnd $7500 kbLeft $4B00 kbCtrlEnter $1C0A kbNoKey $0000 kbCtrlHome $7700 kbPgDn $5100 kbCtrlIns $0400 kbPgUp $4900 kbCtrlLeft $7300 kbrayPlus $4E2B kbCtrlPgDn $7600 kbRight $4D00 kbCtrlPgUp $8400 kbShiftDel $0700 kbCtrlPrtSc $7200 kbShiftIns $0500 kbCtrlRight $7400 kbShiftTab $0F00 kbDel $5300 kbTab $0F09 kbDown $5000 kbUp $4800 ----------------------------------------------------------- Таблица 14.17. Коды Alt-число. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbAlt1 $7800 kbAlt6 $7D00 kbAlt2 $7900 kbAlt7 $7E00 kbAlt3 $7A00 kbAlt8 $7F00 kbAlt4 $7B00 kbAlt9 $8000 kbAlt5 $7C00 kbAlt0 $8100 ----------------------------------------------------------- Таблица 14.18. Коды функциональных клавиш. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbF1 $3B00 kbF6 $4000 kbF2 $3C00 kbF7 $4100 kbF3 $3D00 kbF8 $4200 kbF4 $3E00 kbF9 $4300 kbF5 $3F00 kbF0 $4400 ---------------------------------------------------------- Таблица 14.19. Коды Shift-функциональная клавиша. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbShiftF1 $5400 kbShiftF6 $5900 kbShiftF2 $5500 kbShiftF7 $5A00 kbShiftF3 $5600 kbShiftF8 $5B00 kbShiftF4 $5700 kbShiftF9 $5C00 kbShiftF5 $5800 kbShiftF0 $5D00 ----------------------------------------------------------- Таблица 14.20. Коды Ctrl-функциональная клавиша. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbCtrlF1 $5E00 kbCtrlF6 $6300 kbCtrlF2 $5F00 kbCtrlF7 $6400 kbCtrlF3 $6000 kbCtrlF8 $6500 kbCtrlF4 $6100 kbCtrlF9 $6600 kbCtrlF5 $6200 kbCtrlF0 $6700 ----------------------------------------------------------- Таблица 14.21. Коды Alt-функциональная клавиша. ----------------------------------------------------------- Константа Значение Константа Значение ----------------------------------------------------------- kbAltF1 $6800 kbAltF6 $6D00 kbAltF2 $6900 kbAltF7 $6E00 kbAltF3 $6A00 kbAltF8 $6F00 kbAltF4 $6B00 kbAltF9 $7000 kbAltF5 $6C00 kbAltF0 $7100 ----------------------------------------------------------- См. также evKeyDown, GetKeyEvent.Функция LongDiv Objects
================================================================= Объявление function LongDiv(X: Longint; Y: Integer): Integer; inline($59/$58/$5A/$F7/$F9); Функция Функция со встроенным ассемблерным кодом для быстрого деления, возвращающая целое значение X/Y.Функция LongMul Objects
================================================================= Объявление function LongMul(X, Y: Integer): Longint; inline($5A/$58/$F7/$EA); Функция Функция со встроенным ассемблерным кодом для быстрого умножениия, возвращающая длинное целое значение X*Y.Тип LongRec Objects
================================================================= Объявление LongRec = record Lo, Hi: Word; end; Функция Полезный тип записи для обработки переменных двойного слова.Функция LowMemory Memory
================================================================= Объявление function LowMemory: Boolean; Функция Возвращает True, если памяти мало, в противном случае False. True означает, что вызов распределения памяти достиг пула надежности. Размер пула надежности определяется переменной LowMemSize. См. также Главу 6, InitMemory, TView.Valid, LowMemSize.Переменная MaxBufMem Memory
================================================================= Объявление MaxBufMem: Word = 65536 div 16; Функция Указывает максимальный объем памяти в 16-байтовых параграфах, которая может быть распределена для кэш-буферов. См. также GetBufMem, FreeBufMem.Переменная MaxCollectionSize Objects
================================================================= Объявление MaxCollectionSize = 65520 div SizeOf(Pointer); Функция Определяет максимальное число элементов, которые может содержать коллекция, по существу это число указателей, которое помещается в сегмент памяти в 64К.Константа MaxViewWidth Views
================================================================= Объявление MaxViewWidth = 132; Функция Устанавливает максимальную длину видимого элемента. См. также поле TView.Size.Константа mbXXXX Drivers
================================================================= Функция Эти константы могут быть использованы при проверке поля TEvent.Buttons записи события evMouse. if (Event.What = evMouseDown) and (Event.Button = mbLeftButton) then LeftButtonDown; Значения Определены следующие константы: Таблица 14.22. Константы кнопки мышки. --------------------------------------------------------------- Костанта Значение Назначение --------------------------------------------------------------- mbLeftButton $01 Установлено, если была нажата левая кнопка mbRightButton $02 Установлено, если была нажата правая кнопка --------------------------------------------------------------- См. также GetMouseEvent.Функция MemAlloc Memory
================================================================= Объявление function MemAlloc(Size: Word): Pointer; Функция Распределяет Size байт памяти в куче и возвращает указатель на блок. Если блок требуемого размера не может быть распределен, возвращается значение nil. В отличие от стандартных процедур New и GetMem, MemAlloc не позволяет распределять пул надежности. Блок распределенный с помощью MemAlloc может быть освобожден стандартной процедурой FreeMem. См. также New, GetMem, Dispose, FreeMem, MemAllocSeg.Функция MemAllocSeg Memory
================================================================= Объявление function MemAllocSeg(Size: Word): Pointer; Функция Распределяет блок памяти выровненный на границу сегмента. Соответствует MemAlloc, за исключением того, что часть смещения результирующего значения указателя - 0. См. также MemAllocПеременная MenuBar App
================================================================= Объявление MenuBar: PMenuView = nil; Функция Сохраняет указатель на полосу меню программы (наследник TMenuView). Переменная MenuBar инициализируется с помощью TProgram.InitMenuBar, которая вызывается через TProgram.Init. Значение nil указывает, что программа не имеет полосы меню.Функция Message Views
================================================================= Объявление function Message(Receiver: PView; What, Command: Word; InfoPtr: Pointer): Pointer; Функция Устанавливает событие-команду с аргументами What, Command или InfoPtr, затем, если возможно, вызывает Receiver^.HandleEvent для обработки этого события. Message возвращает nil, если Receiver - nil или, если событие не обработано успешно. Если событие успешно обработано (HandleEvent возвращает Event.What как evNothing), функция возвращает Event.InfoPtr. Последний может быть использован для определения, каким видимым элементом обработано событие. Аргумет What обычно устанавливается в evBroadcast. Например, по умолчанию TscrollBar.ScrollDraw посылает следующее сообщение в полосу скроллинга владельца: Message(Owner, evBroadcast, cmScrollBarChanged, @Self); Это сообщение гарантирует, что соответствующие видимые элементы перерисуются как только значение полосы скроллинга изменится. См. также TView.HandleEvent, тип TEvent, константы cmXXXX, константы evXXXX.Переменная MinWinSize Views
================================================================= Объявление MInWinSize: TPoint = (X: 16; Y: 6); Функция Определяет минимальный размер TWindow или его потомков. Значение возвращается в параметре Min при вызове TWindow.SizeLimits. Любые изменения в MinWinSize будут воздействовать на все окна, если только метод SizeLimits окна не перекрыт. См. также TWindow.SizeLimitsПеременная MouseButtons Drivers
================================================================= Объявление MouseButtons: Byte; Функция Содержит текущее состояние кнопок мышки. MouseButtons корректируется обработчиком прерываний мышки как только кнопка нажата или отпущена. Константы mbXXXX могут быть использованы для проверки MouseButtons. См. также константы mbXXX.Переменная MouseEvents Drivers
================================================================= Объявление MouseEvents: Boolean = False; Функция Устанавливается в True, если мышка инсталлирована и обнаружена InitEvents; в противном случае, устанавливается в False. Если False, то все процедуры событий от мышки обходятся. См. также GetMouseEvent.
Назад | Содержание | Вперед