ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 30 ---------------------------------------------------------- TPXPictureValidator Validate ----------------------------------------------------------- Объект картинки определителя допустимости сравнивает ввод пользователя с картинкой формата данных для определе- ния допустимости вводимых данных. Эти картинки совместимы с картинками, используемыми реляционными базами данных Paradox фирмы Borland, служащих для проверки допустимости вводимых данных. Полное описание картинок содержится в ме- тоде Picture TPXPictureValidator. Поле ----------------------------------------------------------- Pic Pic: PString; Указывает на строку, которая описывает формат для дан- ных в связанной строке ввода. Конструктор Init устанавлива- ет Pic равным строке, переданной в качестве одного из его параметров. Методы ----------------------------------------------------------- Init constructor Init (const APic: string; AutoFill: Boolean); Создает объект картинки определителя допустимости, вы- зывая сначала конструктор Init, унаследованный от TValidator, а затем выделяет в динамической памяти копию APic и устанавливает значение Pic равным указателю на нее, после чего устанавливает бит voFill в Options в случае, ес- ли AutoFill равно True. См. также: TValidator.Init Load constructor Load(var S: TStream); Создает и загружает объект картинки определителя до- пустимости из потока S, вызывая сначала конструктор Load, унаследованный от TValidator, а затем считывая значение по- ля Pic, введенного TPXPictureValidator. См. также: TValidator.Load Done destructor Done; virtual; Уничтожает строку, на которую указывает Pic; затем уничтожает объект картинки определителя допустимости, вызы- вая деструктор Done, унаследованный от TValidator. Error procedure Error; Virtual; Выдает окно сообщений, указывающее на ошибку в формате картинки, отображая строку, на которую указывает Pic. IsValidInput function IsValidInput (var S: string; SupressFill: Boolean): Boolean; virtual; Сравнивает строку, переданную в S, с картинкой форма- та, описанной в Pic, и возвращает True в случае, если Pic равно nil или Picture не возвращает prError для S; в про- тивном случае возвращает False. Параметр SupressFill пере- определяет значение в voFill на время вызова IsValidInput. S является параметром типа var, поэтому IsValidInput может изменять это значение. Например, если SupressFill равно False и voFill установлено, то вызов Picture возвра- щает заполненную строку, основанную на S, поэтому образ в строке ввода автоматически отражает формат, указанный в Pic. См. также: TPXPictureValidator.Picture IsValid function IsValid (const S: string): Boolean; virtual; Сравнивает строку, переданную в S, с картинкой форма- та, указанной в Pic, и возвращает True в случае, если Pic равно nil или Picture возвращает для S prComplete, что оз- начает, что для удовлетворения описанного формата S не тре- бует дальнейшего ввода данных. См. также: TPXPictureValidator.Picture Picture function Picture (var Input: string): TPicResult; virtual; Форматирует строку, переданную в Input, в соответствии с форматом, указанным в строке картинки, на которую указы- вает Pic. Возвращает prError в случае, если в строке кар- тинки имеется ошибка или если Input содержит данные, не со- ответствующие указанной картинке. Возвращает prComplete в случае, если Input может полностью удовлетворить указанной картинке. Возвращает prIncomplete в случае, если Input со- держит данные, соответствующие указанной картинке, но не полностью. В Таблице 19.41 показаны символы, используемые при создании картинок форматов. Таблица 19.41. Символы картинки формата ----------------------------------------------------------- Тип символа Символ Описание ----------------------------------------------------------- Специальный # Вводить только цифру ? Вводить только букву (не зависит от регистра) & Вводить только букву, преобразовывать в верхний регистр @ Вводить любой символ ! Вводить любой символ, преобразовывать в верхний регистр Соответствие ; Взять следующий символ буквально * Счетчик повторений [] Опция {} Операторы группы ' Набор альтернатив Все остальные Берутся буквально ----------------------------------------------------------- Store procedure Store (var S: TStream); Сохраняет объект картинки определителя допустимости в потоке S, вызывая сначала метод Store, унаследованный от TValidator, а затем записывает строку, на которую указывает Pic. ----------------------------------------------------------- TRadioButtons Dialogs ----------------------------------------------------------- Объекты TRadioButtons- это кластеры, содержащие до 65536 управляющих элементов, из которых в любой момент вре- мени может быть выбрана только одна "кнопка". Выбор невыб- ранной "кнопки" будет автоматически освобождать ранее выб- ранную кнопку. Этот объект наследует от TCluster большую часть функций, включая Init, Load и Done. С "кнопками" с зависимой фиксацией часто связаны объекты TLabel. TRadioButtons интерпретирует наследуемое поле TCluster.Value как номер "нажатой" кнопки. Номер первой "кнопки" в кластере равен 0. Методы ----------------------------------------------------------- Draw procedure Draw; virtual; Переопределяемость: переопределяется редко. Отображает "кнопки" в виде '( ) ', заключенном в пря- моугольник. Mark function Mark(Item: Integer): Boolean; virtual; Переопределяемость: никогда не переопределяется. Возвращает значение True, если Item = Value, т.е. если "кнопка" с номером Item представлена текущим значением поля Value ("нажатая" кнопка). См. также: TCluster.Value, TCluster.Mark MovedTo procedure MovedTo(Item: Integer); virtual; Переопределяемость: не переопределяется. Присваивает Value значение Item. См. также: TCluster.MovedTo, TRadioButtons.Mark Press procedure Press(Item: Integer); virtual; Переопределяемость: никогда не переопределяется. Присваивает Value значение Item. Вызывается при нажа- тии "кнопки" с номером Item. SetData procedure SetData(var Rec); virtual; Переопределяемость: переопределяется редко. Вызывает метод SetData, унаследованный от TCluster, для установки поля Value, а затем устанавливает поле Sel равным Value в случае, если выбранный элемент при запуске представляет собой "нажатую" кнопку. См. также: TCluster.SetData Палитра ----------------------------------------------------------- Объекты TRadioButtons используют CCluster-палитру, назначенную по умолчанию для всех объектов кластера, для отображения элементов с 16 по 18 стандартной палитры диало- гового окна. 1 2 3 4 ЙННННСННННСННННСНННН» CCluster є 16 і 17 і 18 і 18 є ИННСНПННСНПННСНПННСНј і і і і Нормальный текст Щ і і АДДД Выбранная оперативная Выделенный текст ДДДДДЩ і клавиша АДДДДДДДД Обычная оперативная клавиша ----------------------------------------------------------- TRangeValidator Validate ----------------------------------------------------------- Объект определителя диапазона допустимости показывает, попадают ли данные, напечатанные пользователем, в заданный целочисленный диапазон. Поля ----------------------------------------------------------------- Max Max: Longint; Max представляет собой максимально допустимое длинное целое число в строке ввода. Min Min: Longint; Min представляет собой минимально допустимое длинное целое число в строке ввода. Методы ----------------------------------------------------------- Init constructor Init (const AMin, AMax: Longint); Создает объект определителя диапазона допустимости, вызывая сначала конструктор Init, унаследованный от TFilterValidator, передавая набор символов, содержащий '0..9' и символы '+' и '-'. Устанавливает значение Min рав- ным AMin, а Max равным AMax, устанавливая тем самым диапа- зон допустимых длинных целых чисел. См. также: TFilterValidator.Init Load constructor Load (var S: TStream); Создает и загружает определитель диапазона допустимос- ти из потока S, вызывая сначала конструктор Load, унаследо- ванный от TFilterValidator, а затем считывая поля Min и Max, введенные TRangeValidator. См. также: TFilterValidator.Load Error procedure Error; virtual; Выдает окно сообщений, указывающее на то, что введен- ное значение не попало в указанный диапазон. IsValid function IsValid (var S: string): Boolean; virtual; Преобразует строку S в целое число и возвращает значе- ние True в случае, если результат удовлетворяет следующим трем условиям: - оно является допустимым целым числом; - его значение больше или равно Min; - его значение меньше или равно Max. Если какое-либо из этих условий нарушается, то IsValid возвращает False. Store procedure Store (var S: TStream); Сохраняет определитель диапазона допустимости в потоке S, вызывая сначала метод Store, унаследованный от TFilterValidator, а затем записывает поля Min и Max, вве- денные TRangeValidator. См. также: TFilterValidator.Store Transfer function Transfer (var S: String; Buffer: Pointer; Flag: TVTransfer): Word; virtual; Включает три функции DataSize, GetData и SetData, ко- торые объект определителя диапазона допустимости может ис- пользовать для связанной с ним строки ввода. Вместо уста- новки и чтения значения вводимой числовой строки путем пе- редачи строкового представление числа, Transfer может ис- пользовать в качестве его записи данных Longint, что избав- ляет программу от выполнения преобразования. S представляет собой значение введенной строки, а Buffer представляет собой запись данных, переданную строке ввода. В зависимости от значения Flag, Transfer или уста- навливает значение S равным значению числа из Buffer, или устанавливает Buffer равным значению из S. Если Flag равно vtSetData, то S устанавливается равным Buffer. Если Flag равно vtGetData, то Buffer устанавливается равным S. Если Flag равно vtDataSize, то Transfer не осуществляет ни чте- ния, ни записи данных. Transfer всегда возвращает размер переданных данных, в данном случае размер Longint. См. также: тип TVTransfer ----------------------------------------------------------- TRect Objects ----------------------------------------------------------- Поля ----------------------------------------------------------- A A: TPoint A- это точка, определяющая левый верхний угол прямоу- гольника на экране. B B: Point В - это точка, определяющая правый нижний угол прямоу- гольника на экране. Методы ----------------------------------------------------------------- Assign procedure Assign(XA, YA, XB, YB: Integer); Этот метод присваивает значения параметров полям точек прямоугольника. XA становится A.X, XB становится B.X и т.д. Contains function Contains(P: TPoint): Boolean; Возвращает значение True в случае, если прямоугольник содержит точку P. Copy procedure Copy(R: TRect); Copy устанавливает все поля равными полям прямоуголь- ника R. Empty function Empty: Boolean; Возвращает значение True, если прямоугольник пустой, т.е. не содержит символьного пространства. Это означает, что поля A и B равны. Equals function Equals(R: TRect): Boolean; Возвращает True, если R равен данному прямоугольнику. Grow procedure Grow(ADX, ADY: Integer); Изменяет размер прямоугольника, вычитая ADX из A.X, и добавляя ADX к B.X, вычитая ADY из A.Y и добавляя ADY к B.Y. Intersect procedure Intersect(R: TRect); Изменяет положение и размер области до области, опре- деленной пересечением текущей области и R. Move procedure Move(ADX, ADY: Integer); Перемещает прямоугольник, добавляя ADX к A.X и B.X и добавляя ADY к A.Y и B.Y. Union procedure Union(R: TRect); Изменяет прямоугольник до его объединения с прямоу- гольником R; т.е. до наименьшего прямоугольника, содержаще- го этот объект и R. ----------------------------------------------------------- Тип TReplaceDialogRec Editors ----------------------------------------------------------- Описание: TReplaceDialogRec = record Find: String [80]; Replace: String [80]; Options: Word; end; Функция: Диалоговые окна поиска и замены, вызванные EditorDialog при передаче ему edReplace, используют указа- тель на TReplaceDialogRec в качестве второго параметра. Find и Replace содержат строки, заданные по умолчанию, для поиска и замены, соответственно. Options содержит некоторую комбинацию констант флагов редактора efXXXX, описывающих то, как будет происходить поиск и замена. См. также: тип TEditorDialog ----------------------------------------------------------- TResourceCollection Objects ----------------------------------------------------------- Объект TResourseCollection является производным от TStringCollection, и используется с TSourseFile для реали- зации наборов ресурсов. Файл ресурсов - это поток, который индексируется ключевыми строками. Следовательно, каждый элемент ресурса имеет целое поле Pos и строковое поле Key. Переопределяемость методов TResourseCollection главным об- разом связана с обработкой дополнительных строк в его эле- ментах. TResourseCollection используется внутри объектов TResourseFile для поддержания индекса файла ресурсов. ----------------------------------------------------------- TResourceFile Objects ----------------------------------------------------------- Объект TResourseFile реализует поток, который может индексироваться ключевыми строками. Когда объекты сохраня- ются в файле ресурса, используя TResourseFile.Put, задается ключевая строка, которая идентифицирует этот объект. Объект может быть позже получен обратно с указанием этой ключевой строки в вызове TResourseFile.Get. Для обеспечения быстрого и эффективного доступа к объ- ектам, хранящимся в файле ресурса, TResourseFile хранит ключевые строки в отсортированном наборе строк (с использо- ванием типа TResourseCollection) вместе с положением и раз- мером данных этого ресурса в файле ресурса. Как и в случае с потоками, типы объектов, записываемые и читаемые из файла ресурсов, должны быть зарегистрированы с помощью RegisterType. Поля ----------------------------------------------------------- Modified (чтение/запись) Modified: Boolean; Установлен равным значению True, если файл ресурса был изменен. См. также: TResource.Flush Stream (только для чтения) Stream: PStream; Указатель на поток, связанный с этим файлом ресурса. Методы ----------------------------------------------------------- Init constructor Init(AStream: Pstream); Инициализирует файл ресурса, используя поток, заданный AStream, и устанавливает поле Modified равным False. Напри- мер: ResFile.Init(New(TBufStream, Init("MYAPP.RES', stOpenRead,1024))); Во время инициализации Init ищет в заголовке файла ре- сурсов текущее положение потока. Формат заголовка файла ре- сурсов имеет вид: type TResFileHeader = record Signature: array[1..4] of Char; ResFileSize: Longint; IndexOffset: Longint; end; где Signature содержит 'FBPR', ResFileSize содержит размер всего файла ресурсов, за исключением полей Signature и ResFileSize (т.е. размер файла ресурса -8 байт), а IndexOffset содержит смещение набора индексов от начала за- головка. Если Init не находит заголовка файла ресурса в текущей позиции AStream, то он считает, что создается новый файл ресурса, и создает пустой индекс. Если Init видит метку.EXE файла в текущей позиции по- тока, то он просматривает поток до конца файла .EXE и ищет заголовок файла ресурса здесь. Аналогично Init будет про- пускать оверлейный файл, добавленный к .EXE файлу (так же, как OvrInit пропускает файл ресурса). Это означает, что Вы можете добавить оверлейный файл и файл ресурса (в любом по- рядке) в конец выполняемого файла. EXE Вашей программы. (Именно это делает исполняемый файлом интегрированной среды TURBO.EXE). См. также: TResourceFile.Done Done destructor Done; virtual; Переопределяемость: никогда не переопределяется. Сбрасывает файл ресурса, используя TResourseFile.Flush, а затем освобождает индекс и поток, на который указывает поле Stream. См. также: TResourceFile.Init, TResourceFile.Flush Count function Count: Integer; Возвращает число ресурсов, сохраненных в файле ресур- сов. См. также: TResourceFile.KeyOf Delete procedure Delete(Key: String); Удаляет ресурс, индексируемый ключом Key, из файла ре- сурсов. Пространство, ранее занятое удаленным ресурсом, не используется. Вы можете вновь задействовать эту память, ис- пользуя SwitchTo для создания упакованной копии файла в но- вом потоке. См. также: TResourceFile.SwitchTo Flush procedure Flush; Если файл ресурса был изменен (проверяется значение поля Modified), то Flush сохраняет обновленный индекс в конце потока и обновляет заголовок ресурса в начале потока. Затем Modified устанавливается равным False. См. также: TResourceFile.Done, TResourceFile.Modified Get function Get(Key: String): PObject; Ищет Key в индексе файла ресурсов. Возвращает значение nil в случае, если ключ не найден. В противном случае, про- изводит поиск до позиции, заданной индексом, и вызывает Stream^.Get для создания и загрузки объекта, описанного с помощью Key. Например: DeskTop^.Insert(ValidView(ResFile.Get('EditorWindow'))); См. также: TResourceFile.KeyAt, TResourceFile.Put KeyAt function KeyAt(I: Integer): String; Возвращает ключевую строку для ресурса с номером i в вызывающем файле ресурса. Индекс первого ресурса равен 0, а индекс последнего ресурса равен TResourseFile.Count-1. Ис- пользуя Count и KeyAt, можно последовательно обработать все ресурсы в файле ресурса. См. также: TResourceFile.Count Put procedure Put(Item: PObject; Key: String); Добавляет объект, заданный Р, в файл ресурса с ключе- вой строкой, заданной в Key. Если индекс содержит Key, то новый объект замещает старый. Объект добавляется в конец существующих объектов файла ресурса с использованием Stream^.Put См. также: TResourceFile.Get SwitchTo function SwitchTo(AStream: PStream; Pack: Boolean): PStream; Переключает файл ресурса из его потока в поток, пере- данный в AStream, и возвращает в качестве результата указа- тель на исходный поток. Если параметр Pack равен True, то перед записью в но- вый поток он будет отбрасывать пустое и неиспользуемое пространство из файла ресурса. Это единственный способ сжать файл ресурса. Копирование с параметром Pack = False будет выполняться быстрее, но без сжатия. ----------------------------------------------------------- TScrollBar Views ----------------------------------------------------------- Поля ----------------------------------------------------------- ArStep (только для чтения) ArStep: Integer; ArStep представляет собой число, добавляемое или вычи- таемое из поля Value полосы прокрутки в случае, когда об- ласть стрелок выбрана мышью (sbLeftArrow, sbRightArrow, sbUpArrow, sbDownArrow) или обнаружены эквивалентные нажа- тия клавиш. По умолчанию, TScrollBar.Init устанавливает ArStep равным 1. См. также: TScrolBar.SetStep, TScrollBar.SetParam, TScrollBarScrollStep Max (только для чтения) Max: Integer; Поле Max представляет собой максимальное значение поля Va- lue. По умолчанию, TScrollBar устанавливает Max равным 0. См. также: TScrollBar.SetRange, TScrollBar.SetParams Min (только для чтения) Min: Integer; Поле Min представляет собой минимальное значение поля Value. По умолчанию, TScrollBar устанавливает Min равным 0. См. также: TScrollBar.SetRange, TScrollBar.SetParams PgStep (только для чтения) PgStep: Integer; PgStep представляет собой число, добавляемое или вычи- таемое из поля Value полосы прокрутки, когда событие пере- щелкивания "мыши" возникает в любой области страницы (sbPageLeft, sbPageRight, sbPageUp, sbPageDown) или обнару- живаются эквивалентные нажатия клавиш (Ctrl-ц, Ctrlч, PgUp, PgDn). По умолчанию, TScrollBar.Init устанавливает PgStep равным 1. PgStep можно изменять при помощи TScrollBar.SetStep, TScrollBar.SetParams и TScroller.SetLimit. См. также: TScrollBar.SetStep, TScrollBar.SetParams, TScroller.SetLimit, TScrollBar.ScrollStep Value (только для чтения) Value : Integer; Поле Value представляет собой текущую позицию индика- тора полосы прокрутки. Этот маркер, выделенный специальным цветом, перемещается по полосе прокрутки, указывая относи- тельную позицию (горизонтальную или вертикальную, в зависи- мости от типа полосы прокрутки) видимого текста относитель- но всего текста, доступного для просмотра. Многие события могут прямо или косвенно изменять значение Value (такие, как отметки с помощью "мыши" на элементах полосы прокрутки, изменение размера окна или изменение текста при прокрутке). Аналогично, изменения в Value могут потребовать запуска других событий. По умолчанию TScroolBar.Init устанавливает Value равным 0. См. также: TScrollBar.SetValue, TScrollBar.SetParams, TScrollBar.ScrollDraw, TScroller.HandleEvent, TScrollBar.Init Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect); Создает и инициализирует полосу прокрутки с границами Bo- unds, вызывая конструктор Init, унаследованный от TView. Value, Max и Min устанавливаются равными 0. PgStep и ArStep устанавливаются равными 1. Формы элементов полосы прокрутки устанавливаются равными определенным по умолчанию в TScrollChars. Если Bounds задает Size.X = 1, то Вы получите верти- кальную полосу прокрутки, в противном случае - горизонталь- ную. Вертикальные полосы прокрутки имеют поле GrowMode, равное gfGrowLoX + gfGrowHiX + gfGrowHiY; вертикальные по- лосы прокрутки имеют поле GrowMode, равное gfGrowLoY + gfGrouHiX + gfGrowHiY. Load constructor Load(var S: TStream); Создает и загружает полосу прокрутки из потока S, вы- зывая конструктор Load, унаследованный от TView, а затем считывая 5 целочисленных полей с помощью метода S.Read. См. также: TScrollBar.Store Draw procedure Draw; virtual; Переопределяемость: никогда не переопределяется. Рисует полосу прокрутки в зависимости от текущих зна- чений Bounds, Value и палитры. См. также: TScrollBar.ScrollDraw, TScrollBar.Value GetPalette function GetPalette: PPalette; virtual; Переопределяемость: не переопределяется. Возвращает указатель на CScrollBar, палитру, использу- емую по умолчанию, для полосы прокрутки. HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Переопределяемость: никогда не используется. Обрабатывает события полосы прокрутки, вызывая метод Handle- Event, унаследованный от TView, затем анализируя Event.What. События "мыши" передаются владельцу полосы прокрутки (см. функцию Message), который должен изменять полосы прокрутки, например, прокруткой текста. Метод TScrollBar.HandleEvent также определяет, какая часть полосы прокрутки была выбрана "мышью" (или эквивалентной комбина- цией клавиш). Поле Value настраивается в соответствии с те- кущими значениями ArStep и PgStep, и индикатор полосы прок- рутки перерисовывается. См. также: TView.HandleEvent ScrollDraw procedure ScrollDraw; virtual; Переопределяемость: используется редко. Метод ScrollDraw вызывается каждый раз при изменении значения поля Value. По умолчанию ScrollDraw посылает сооб- щение cmScrollBarChanged владельцу полосы прокрутки: Message(Owner, evBoadcast, cmScrollBarChanged, @Self); См. также: TScrollBar.Value, функция Message ScrollStep function ScrollStep(Part: Integer): Integer; virtual; Переопределяемость: не переопределяется. По умолчанию ScrollStep возвращает положительное или отрицательное значение шага, в зависимости от части полосы прокрутки, заданной в Part, и текущих значений ArStep и PgStep. Аргумент Part должен быть одной из констант частей полосы прокрутки sbXXXX, описанных в Главе 19. См. также: TScrollBar.SetStep, TScrollBar.SetParams, константы sbXXXX SetParams procedure SetParams(AValue, AMin, AMax, APgStep, AArStep: Integer); Метод SetParams устанавливает поля Value, Min, Max, PgStep и ArStep равными значениям, переданным в AValue, AMin, AMax, APgStep и AArStep. Если аргументы конфликтуют, то выполняются некоторые настройки. Например, Min не может быть больше Max, поэтому если AMax < AMin, то Max устанав- ливается равным Min. Value должно лежать в диапазоне [Min, Max], поэтому, если Value < AMin, то Value устанавливается равным Min; если AValue > AMax, то Value устанавливается равным Max. DrawView отображает полосу прокрутки заново. Если Value изменяется, то будет вызвана ScrollDraw. См. также: TView.DrawView, TScrollBar.ScrollDraw, TScrollBar.SetRange, TScrollBar.SetValue SetRange procedure SetRange(AMin, AMax: Integer); Метод SetRange задает допустимый диапазон для поля Value, устанавливая Min и Max равными AMin и AMax. SetRange вызывает SetParams, поэтому DrawView и ScrollBar будут вы- зываться в случае, если изменения требуют перерисовки поло- сы прокрутки. См. также: TScrollBar.SetParams, TScrollBar.ScrollStep SetStep procedure SetStep(APgStep, AArStep: Integer); SetStep устанавливает поля PgStep и ASrStep равным APgStep и AArStep, соответственно. Этот метод вызывает SetParams с остальными аргументами, равными их текущим зна- чениям. См. также: TScrollBar.SetParams, TScrollBar.ScrollStep SetValue procedure SetValue(AValue: Integer); Метод SetValue устанавливает поле Value равным AValue, вызывая SetParams с остальными аргументами, равными их те- кущим значениям. DrawView и ScrollDraw вызываются в случае, если этот вызов изменяет значение Value. См. также: TView.DrawView, TScrollBar.ScrollDraw, TScrollBar.SetRange, TScrollBar.SetValue SetRange procedure SetRange(AMin, AMax: Integer); Метод SetRange задает допустимый диапазон для поля Value, устанавливая Min и Max равными AMin и AMax. SetRange вызывает SetParams, поэтому DrawView и ScrollBar будут вы- зываться в случае, если изменения требуют перерисовки поло- сы прокрутки. См. также: TScrollBar.SetParams, TScrollBar.ScrollStep SetStep procedure SetStep(APgStep, AArStep: Integer); SetStep устанавливает поля PgStep и ASrStep равным APgStep и AArStep, соответственно. Этот метод вызывает SetParams с остальными аргументами, равными их текущим зна- чениям. См. также: TScrollBar.SetParams, TScrollBar.ScrollStep SetValue procedure SetValue(AValue: Integer); Метод SetValue устанавливает поле Value равным AValue, вызывая SetParams с остальными аргументами, равными их те- кущим значениям. DrawView и ScrollDraw вызываются в случае, если этот вызов изменяет значение Value. См. также: TScrollBar.SetParams, TView.DrawView, TScrollBar.ScrollDraw, TScroller.ScrollTo Store procedure Store(var S:TStream); Сохраняет объект TScrollBar в потоке S, вызывая снача- ла метод Store, унаследованный от TView, а затем записывая 5 целочисленных полей в поток, используя S.Write. См. также: TScrollBar.Load Палитра ----------------------------------------------------------- Объекты полосы прокрутки используют палитру (опреде- ленную по умолчанию) CScrollBar, для отображения 4 и 5-го элементов стандартной палитры прикладной программы. 1 2 3 ЙНННСНННСННН» CScrollBar є 4 і 5 і 5 є ИНСНПНСНПНСНј Страница ДДДДДДЩ і АДДДДД Индикатор Стрелки ДДДДДДДДДДЩ ----------------------------------------------------------- Тип TScrollChars Views ----------------------------------------------------------- Описание: TScrollChars = array[0..4] of Char; Функция: Массив, представляющий символы, используемые для рисования TScrollBar. См. также: TScrollBar ----------------------------------------------------------- TScroller Views ----------------------------------------------------------- TScroller задает виртуальное окно для прокрутки отоб- ражаемого элемента, имеющего больший размер. Это означает, что этот отображаемый элемент позволяет пользователю прос- матривать большой отображаемый элемент в определенных гра- ницах. Он задает смещение, с которого метод Draw заполняет видимую область. Все методы, необходимые для реализации прокрутки с помощью полосы прокрутки и клавиатуры, встроены в TScroller. Этот базовый элемент прокрутки обеспечивает полезную основу для прокрутки таких отображаемых элементов, как текстовые отображаемые элементы. Поля ----------------------------------------------------------- Delta (только для чтения) Delta: TPoint; Содержит Х (горизонтальную) и Y (вертикальную) состав- ляющие положения элемента прокрутки относительно виртуаль- ного отображаемого элемента. Автоматическая прокрутка дос- тигается изменением одной или обоих компонент в ответ, нап- ример, на события полосы прокрутки, изменяющие значения по- ля Value. "Ручная" прокрутка изменяет значение Delta, отоб- ражает изменения в поле Value полосы прокрутки и приводит к обновлению индикаторов полосы прокрутки. См. также: TScroller.ScrollDraw, TScroller.ScrollTo HScrollBar (только для чтения) HScrollBar: PScrollBar; Указывает на горизонтальную полосу прокрутки, связан- ную с этим элементом прокрутки. Если такой полосы прокрутки нет, то HScroolBar равен nil. Limit (только для чтения) Limit: TPoint; Limit.X и Limit.Y- это максимально допустимые значения для Delta.X и Delta.Y. См. также: TScroller.Delta VScrollBar (только для чтения) VScrollBar: PScrollBar; Указывает на вертикальную полосу прокрутки, связанную с этим элементом прокрутки. Если такой полосы прокрутки нет, то VScrollBar равно nil. Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect;AHScrollBar, AVScrollBar: PScrollBar); Создает и инициализирует объект TScroller с заданным размером и полосами прокрутки. Вызывает конструктор Init, унаследованный от TView, для установки размера отображаемо- го элемента. Options устанавливается равным ofSelectable, а EventMask устанавливается равным evBroadcast. AHScrollBar должен быть nil, если Вы не хотите иметь горизонтальную по- лосу прокрутки; аналогично, AVScrollBar должен быть nil, если Вы не хотите иметь вертикальную полосы прокрутки. См. также: TView.Init, TView.Options, TView.EventMask Load constructor Load(var S: TStream); Загружает отображаемый элемент прокрутки из потока S, вызывая сначала конструктор Load, унаследованный от TView, а затем восстанавливает указатели на полосы прокрутки, ис- пользуя GetPeer- ViewPtr, и читает поля Delta и Limit, ис- пользуя S.Read. См. также: TScroller.Store ChangeBounds procedure ChangeBounds(var Bounds: TRect); virtual; Переопределяемость: не переопределяется. Изменяет размер элемента прокрутки, вызывая SetBounds. При необходимости элемент и полосы прокрутки перерисовыва- ются вызовом DrawView и SetLimit. См. также: TView.SetBounds, TView.DrawView, TScroller.SetLimit GetPalette function GetPalette: PPalette; virtual; Переопределяемость: иногда переопределяется. Возвращает указатель на используемую по умолчанию па- литру элемента прокрутки CScroller. HandleEvent procedure HandleEvent(var Event:TEvent);virtual; Переопределяемость: используется редко. Обрабатывает большинство событий, вызывая метод HandleEvent, унаследованный от TView. События-извещения с командой cmScrollBarChanged, если они пришли от HScrollBar или VScrollBar, приводят к вызову TScroller.ScrollDraw. См. также: TView.HandleEvent, TScroller.ScrollDraw ScrollDraw procedure ScrollDraw; virtual; Переопределяемость: не переопределяется. Проверяет, удовлетворяет ли Delta соответствующим по- зициям полос прокрутки. Если нет, то Delta устанавливается равным правильному значению, и вызывается DrawView для пе- рерисовки элемента прокрутки. См. также: TView.DrawView, TScroller.Delta, TScroller.HscrollBar, TScroller.VScrollBar ScrollTo procedure ScrollTo(X, Y: Integer); Устанавливает полосы прокрутки равными (X, Y), вызывая HScrollBar^.SetValue(X) и VScrollBar^.SetValue(Y), и пере- рисовывает отображаемый элемент, вызывая DrawView. См. также: TView.DrawView, TScroller.SetValue SetLimit procedure SetLimit(X, Y: Integer); Устанавливает полосы прокрутки равными (X, Y), вызывая HScrollBar^.SetValue(X) и VScrollBar^.SetValue(Y), и пере- рисовывает отображаемый элемент, вызывая DrawView. См. также: TView.DrawView, TScroller.SetValue SetLimit procedure SetLimit(X, Y: Integer); Устанавливает Limit.X равным X, а Limit.Y равным Y, а затем вызывает HScrollBar^.SetParams и VScrollVar^.SetParams (если эти полосы прокрутки существу- ют), чтобы настроить их поля Max. Эти вызовы могут привести к перерисовке полосы прокрутки. Наконец, вызывается DrawView для повторного отображения элемента прокрутки (ес- ли это необходимо). См. также: TScroller.Limit, TScroller.HScroller, TScroller.VScrollBar, TScrollBar.SetParams SetState procedure SetState(AState: Word; Enable: Boolean); virtual; Переопределяемость: используется редко. Этот метод вызывается каждый раз при изменении состоя- ния элемента прокрутки. Вызывает метод SetState, унаследо- ванный от TView, для установки или сброса флагов состояния из AState. Если новое состояние- sfSelected and sfActive, то SetState отображает полосы прокрутки, в противном случае они "скрываются" (становятся невидимыми). См. также: TView.SetState Store procedure Store(var S: TStream); Записывает элемент прокрутки в поток S, вызывая снача- ла метод Store, унаследованный от TView, а затем сохраняет ссылки на полосы прокрутки, используя PutPeerViewPtr, и, наконец, записывает значения Delta и Limit, с помощью S.Write. См. также: TScroller.Load, TStream.Write Палитра ----------------------------------------------------------- Объекты элемента прокрутки используют палитру, опреде- ленную по умолчанию, CScroller, для отображения 6 и 7 эле- ментов стандартной палитры окна. 1 2 ЙНННСННН» CScroller є 6 і 7 є ИНСНПНСНј Обычный ДДДДДДЩ АДДДД Подсвеченный ----------------------------------------------------------- Тип SearchRec StdDlg ----------------------------------------------------------- Описание: TSearchRec = record Attr: Byte; Time: Longint; Size: Longint; Name: string [12]; end; Функция: Записи TSearchRec используются в объектах на- бора файлов для хранения информации о собранных файлах. TSearchRec реально представляет собой подмножество типа SearchSet, определенного в модуле Dos, с отброшенными 21 байтами неиспользованной информации. Attr представляет со- бой байт битов, содержащий атрибуты файлов, как это опреде- лено в модуле Dos. Time представляет собой отметку даты и времени DOS, которую можно расшифровать с помощью процедуры UnpackTime из модуля Dos. Size- это размер файла в байтах. Name- это строка, содержащая имя файла. См. также: модуль Dos в описании языка ----------------------------------------------------------- Тип TSItem Dialogs ----------------------------------------------------------- Описание: TSItem = record Value: PString; Next: PSItem; end; Функция: Запись типа TSItem обеспечивает односвязный список из PString. Подобные списки могут быть полезны во многих программах на Turbo Vision, где не требуется полная гибкость наборов строк (см. TCluster, например). Функция NewSItem предназначена для добавления записей в список TSItem. ----------------------------------------------------------- TSortedCollection Objects ----------------------------------------------------------- Объект TSortedCollection является специализированным производным от TCollection, и реализует набор, отсортиро- ванный по ключу. Сортировка производится методом Compare, который Вы переопределяете, чтобы задать свое определение упорядочивания элементов. Когда новые элементы добавляются, они автоматически вставляются в порядке, заданном методом Compare. Элементы можно находить, используя метод Search. В случае, если Compare требует дополнительной информации, пе- реопределите виртуальный метод KeyOf, возвращающий указа- тель для Compare. TSortedCollection осуществляет создание отсортирован- ных наборов как с дублированием ключей, так и без него. По- ле Duplicates определяет, допускается ли дублирование. По умолчанию, оно равно False, что указывает на тот факт, что дублирование запрещено, однако после создания отсортирован- ного набора можно установить Duplicates равным True для то- го, чтобы допустить в наборе элементы с повторяющимися клю- чами. Поле ----------------------------------------------------------- Duplicates: Boolean; Определяет, допускаются ли в наборе элементы с повто- ряющимися ключами. По умолчанию Duplicates равно False, и вызов Insert для элемента, ключ которого совпадает с уже существующим, приводит к тому, что новый элемент не вводит- ся в набор; набор хранит только первый элемент с данным значением ключа. Если установить значение Duplicates равным True, то набор вводит элементы с повторяющимися ключами непосредс- твенно перед первым существующим элементом с тем же значе- нием ключа. См. также: TSortedCollection.Insert, TSortedCollection.Search Методы ----------------------------------------------------------- Load consrtuctor Load (var S: TStream); Создает и загружает отсортированный набор из потока S, вызывая сначала конструктор Load, унаследованный от TCollection, а затем считывает поле Duplicates, введенное TSortedCollection. См. также: TCollection.Load Compare function Compare(Key1, Key2: Pointer): Integer; virtual; Переопределяемость: всегда переопределяется. Compare- это абстрактный метод, который должен быть переопределен во всех порожденных типах. Compare должен сравнивать 2 ключевых значения и возвращать результат: ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД -1 если Key1 < Key2 0 если Key1 = Key2 1 если Key1 > Key2 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Key1 и Key2- это значения указателей, извлеченных из соответствующего набора элементов методом TSortedCollection.KeyOf. Метод TSortedCollection.Search ре- ализует двоичный поиск элементов набора, используя Compare для сравнения элементов. Внимание! Убедитесь в том, чтобы Compare вернула все возможные значения: -1, 0 и 1. Даже наборы, которые никогда не содержат совпадающих элементов, должны возвращать 0 в случае, если Compare получает совпадающие ключи. Если Compare никогда не возвращает 0, то Search не будет рабо- тать правильно. См. также: TSortedCollection.KeyOf, TSortedCollection.Compare IndexOf function IndexOf(Item: Pointer):Integer; virtual; Переопределяемость: не переопределяется. Использует TSortedCollection.Search для нахождения ин- декса элемента Item. Если элемент не содержится в наборе, то IndexOf возвращает -1. Действительная реализация TSortedCollection.IndexOf имеет вид: if Search(KeyOf(Item), I) then IndexOf := I else IndexOf := -1; См. также: TSortedCollection.Search Insert procedure Insert(Item: Pointer); virtual; Переопределяемость: никогда не используется. Вызывает TSortedCollection.Search для определения то- го, существует ли уже элемент, и если нет, то куда его вво- дить. Если элемент с ключом Item не найден в наборе, то он вставляется в позицию, определенную текущим индексом. Если элемент с таким же ключом существует, но Duplicates равно False, то набор игнорирует парный элемент. Если Duplicates равно True, то набор вставляет Item перед первым существую- щим элементом с тем же ключом. Реализация TSortedCollection.Insert имеет вид: if nоt Search(KeyOf(Item), I) then AtInsert(I, Item) См. также: TSortedCollection.Search KeyOf function KeyOf(Item: Pointer): Pointer; virtual; Переопределяемость: иногда переопределяется. Для данного элемента Item в наборе метод KeyOf должен возвращать соответствующий ключ элемента. По умолчанию TSortedCollection.KeyOf просто возвращает Item. KeyOf пере- определяется в случае, когда ключ элемента не совпадает с элементом. См. также: TSortedCollection.IndexOf Search function Search(Key: Pointer;var Index: Integer): Boolean; virtual; Переопределяемость: используется редко. Возвращает значение True в случае, если элемент, за- данный ключом Key, не найден в отсортированном наборе. Если элемент найден, то Index устанавливается равным найденному индексу. В противном случае Index устанавливается равным индексу, куда будет помещаться элемент при вставке. При по- иске указанного элемента Search пользуется методом Compare. См.также: TSortedCollection.Insert, TSortedCollection.Compare Store procedure Store (var S: TStream); Записывает отсортированный набор в поток S, вызывая сначала метод Store, унаследованный от TCollection, а затем записывает поле Duplicates, введенное TSortedCollection. См. также: TCollection.Store ----------------------------------------------------------- Объект TSortedListBox StdDlg ----------------------------------------------------------- TSortedListBox представляет собой TListBox, который предполагает, что вместо просто TCollection он имеет TSortedColection. Он будет осуществлять расширенный поиск во всем его содержимом. Он используется в качестве пред- шественника окна-списка файлов TFileList. Поля ----------------------------------------------------------- SearchPos SearchPos: Word; SearchPos указывает, символа в какой позиции анализи- руется при расширенном поиске. ShiftState ShiftState: Byte; ShiftState содержит текущее состояние клавиш клавиату- ры "Shift" для множественного выбора. Методы ----------------------------------------------------------- Init constructor Init (var Bounds:TRect;ANumCols:Word; AScrollBar: PScrollBar); Создает отсортированное окно-список, вызывая конструк- тор Init, унаследованный от TListBox, передавая ограничива- ющий прямоугольник Bounds, количество столбцов ANumCols и горизонтальную полосу прокрутки AScrollBar. Поле ShiftState инициализируется нулем, и курсор показывается над первым элементом. См. также: TListBox.Init HandleEvent procedure HandleEvent (var Event: TEvent); virtual; Обрабатывает обычные для окна-списка события, такие, как нажатия кнопок мыши и нажатия клавиш управления курсо- ром, вызывая метод HandleEvent, унаследованный от TListBox. Другие события клавиатуры обрабатываются напрямую для реализации расширенного поиска. Это означает, что при нажа- тии пользователем буквенной клавиши, фокус получает первое имя, начинающееся с этой буквы. При нажатии другой символь- ной клавиши фокус переместится на первый элемент, второй символ которого совпадает с введенным символом, если тако- вой существует; в противном случае фокус остается на преж- нем месте. Этот процесс продолжается до тех пор, пока поль- зователь не выберет элемент или не переместит фокус к дру- гому элементу с помощью мыши или клавиш управления курсо- ром, в случае чего процесс расширенного поиска начинается заново. Поле SearchPos отслеживает, совпадение какого символа проверяется в настоящий момент в процессе расширенного по- иска. Нажатие клавиши Backspace возвращает процесс на один символ назад, к элементу, выбранному набором предыдущего символа. GetKey function GetKey (var S: String): Pointer; virtual; Окна с отсортированными списками требуют ключей, по которым сортировать элементы. GetKey возвращает указатель на ключ для строки S. По умолчанию GetKey возвращает указа- тель на S. В зависимости от стратегии сортировки, которую используют введенные Вами объекты, Вам, возможно, понадо- бится переопределить GetKey, чтобы он возвращал другой ключ. NewList procedure NewList (AList: PCollection); virtual; Заменяет отсортированный набор, на который указывает List, вызывая метод NewList, унаследованный от TListBox, который освобождает List и устанавливает значение List рав- ным AList, который должен указывать на новый отсортирован- ный набор. После этого NewList переустанавливает SearchPos в 0, так, что расширенные поиски в новом списке будут начи- наться с первого символа в строке элемента. См. также: TListBox.NewList ----------------------------------------------------------- TStaticText Dialogs ----------------------------------------------------------- Объекты TStaticText представляют простейшие отображае- мые элементы: они содержат фиксированный текст и игнорируют все события, переданные им. Они используются как сообщения или пассивные метки. Потомки TStaticText выполняют более активную роль. Поля ----------------------------------------------------------- Text (только для чтения) Text: PString; Указатель на строку текста, которая должна выводиться в отображаемом элементе. Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect; AText: String); Создает объект со статическим текстом заданного разме- ра, вызывая сначала конструктор Init, унаследованный от TView, а затем устанавливая Text равным NewStr(AText). См. также: TView.Init Load constructor Load (var S: TStream); Создает и инициализирует объект статического текста из потока S, вызывая сначала конструктор Load, унаследованный от TView, а затем считывает Text с помощью S.ReadStr. Ис- пользуется совместно с TStaticText.Store для сохранения и чтения отображаемого элемента со статическим текстом из по- тока. См. также: TViewLoad, TStaticText.Store, TStream.ReadStr Done destructor Done; virtual; Переопределяемость: используется редко. Освобождает строку Text, а затем вызывает деструктор Done, унаследованный от TView, для уничтожения объекта. Draw procedure Draw; virtual; Переопределяемость: переопределяется редко. Рисует строку текста внутри отображаемого элемента (при необходимости осуществляется перенос). Ctrl-M в тексте указывает на начало новой строки. Если строка начинается с Ctrl-C, то она центрируется в отображаемом элементе. GetPalette function GetPalette: PPalette; virtual; Переопределяемость: иногда переопределяется. Возвращает указатель на палитру, установленную по умолчанию, CStaticText. GetText procedure GetText (var S: String); virtual; Переопределяемость: иногда переопределяется. Возвращает в S строку, на которую указывает Text. Store procedure TStaticText.Store(var S: TStream); Сохраняет объект TStaticText в потоке S, вызывая сна- чала метод Store, унаследованный от TView, а затем считывая Text с помощью S.WriteStr. Используется совместно с TStaticText.Store для сохранения и чтения из потока отобра- жаемого элемента со статическим текстом. См. также: TStaticText.Load, TView.Store, TStream.WriteStr Палитра ----------------------------------------------------------- Статический текст использует назначенную по умолчанию палитру CStaticText для отображения 6-го элемента стандарт- ной палитры диалогового окна. 1 ЙННН» CStaticText є 6 є ИНСНј Цвет текста ДДДЩ ----------------------------------------------------------- Тип 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 автоматически обновляет строку состояния, вызывая TStatus- Line.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 ----------------------------------------------------------- TStatusLine Menus ----------------------------------------------------------- Объект TStatusLine- это специализированный отображае- мый элемент, обычно выводимый в нижней части экрана. Типич- ная строка состояния отображает список доступных оператив- ных клавиш, доступную память, время дня, текущий режим ре- дактирования, а также подсказки пользователю. Отображаемые элементы задаются в связанном списке методом InitStatusLine объекта программы, вызываемым конструктором программы. Отображаемая строка состояния зависит от контекста подсказ- ки отображаемого элемента, имеющего фокус в текущий момент. Как и полоса меню, и оперативная область экрана, строка состояния обычно принадлежит группе TApplication. Элементы строки состояния представляют собой записи типа TStatusItem, которые содержат поля для текстовой стро- ки, отображаемой в строке состояния, кода оперативной кла- виши, (обычно это функциональная клавиша или комбинация Alt-клавиша) и команды, генерируемой в случае, если отобра- жаемый текст выбирается "мышью", или нажимается оперативная клавиша. Содержимое строки состояния зависит от контекста подс- казки. Каждый объект строки состояния содержит связанный список определений строки состояния Defs (типа TStatusDef), которые определяют диапазон контекстов подсказки и список элементов строки состояния, отображаемых в случае, если те- кущий контекст подсказки находится в этом диапазоне. Кроме того, в соответствии с текущим контекстом подсказки может отображаться предопределенная строка и hint. Поля ----------------------------------------------------------- Defs (только для чтения) Defs: PStatusDef; Указатель на текущий связанный список записей типа TStatusDef. Список для использования определяется текущим контекстом подсказки. См. также: TStatusDef, TStatusLine.Update, TStatusLine.Hint Items (только для чтения) Items: PStatusItem; Указатель на текущий связанный список записей типа TStatusItem. См. также: TStatusItem Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect; ADefs: PStatusDef); Создает объект строки состояния с размером Bounds, вы- зывая конструктор Init, унаследованный от TView. Устанавли- вает бит ofPreProcess в Options, EventMask устанавливается таким, чтобы включать evBroadcast, а GrowMode устанавлива- ется равным gfGrowLoY + gfGrowHiX + gfGrowHiY. Поле Defs устанавливается равным ADefs. Если ADefs имеет значение nil, то Items устанавливается равным nil, в противном слу- чае Items устанавливается равным ADefs^.Items. См. также: TView.Init Load constructor Load(var S: TStream); Создает объект строки состояния и загружает его из по- тока S, вызывая сначала конструктор Load, унаследованный от TView, а затем читая из потока Defs и Items. См. также: TView.Load, TStatusLine.Store Done destructor Done; virtual; Переопределяемость: никогда не переопределяется. Уничтожает все Items и Defs в объекте строки состоя- ния, а затем вызывает TView.Done для уничтожения самого объекта. См. также: TView.Done Draw procedure Draw; virtual; Переопределяемость: используется редко. Отображает строку состояния, выводя строку Text для каждого элемента строки состояния, если она существует, а затем, вслед за полосой разделителя все подсказки, опреде- ленные для текущего контекста подсказки. См. также: TStatusLine.Hint GetPalette function GetPalette: PPalette; virtual; Переопределяемость: иногда используется. Возвращает указатель на используемую по умолчанию па- литру CStatusLine. HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Переопределяемость: используется редко. Обрабатывает большую часть событий, передаваемых стро- ке состояния, вызывая метод HandleEvent, унаследованный от TView, а затем проверяет 3 вида специальных событий: - отметки с помощью "мыши", которые попадают внутрь прямоугольника, занимаемого элементом строки состояния, и генерирует командное событие с Event.What, равным Command, для этого элемента строки состояния; - события от клавиатуры сравниваются с полем KeyCode каждого элемента; их совпадение вызывает командное событие с Command этого элемента; - coобщения с командой cmCommandSetChanged заставляют строку состояния заново отображаться, чтобы отразить любые оперативные клавиши, которые могут стать разрешены или зап- рещены. См. также: TView.HandleEvent Hint function Hint(AHelpCtx: Word): String; virtual; Переопределяемость: часто используется. По умолчанию Hint возвращает пустую строку. Он может быть переопределен в объектах, порожденных строкой состоя- ния, для возврата строки контекстно-зависимой подсказки для параметра AHelpCtx. Непустая строка будет отображаться в строке состояния после полосы-разделителя. См. также: TStatusLine.Draw Store procedure Store(var S: TStream); Сохраняет объект строки состояния в потоке S, вызывая сначала метод Store, унаследованный от TView, а затем запи- сывая в поток все определения состояния и связанные с ними списки элементов. Сохраненный объект может быть восстанов- лен с помощью метода TStatusLine.Load. См. также: TView.Store, TStatusLine.Load Update procedure Update; Выбирает допустимые элементы Items из списка в Defs в зависимости от текущего контекста подсказки, а затем вызы- вает DrawVi- ew для перерисовки строки состояния, если эти элементы изменились. См. также: TStatusLine.Defs Палитра ----------------------------------------------------------- Строки состояния используют палитру, определенную по умолчанию, CStatusLine, для отображения элементов со 2 по 7-й стандартной палитры программы. 1 2 3 4 5 6 ЙННННСННННСННННСННННСННННСНННН» CStatusLine є 2 і 3 і 4 і 5 і 6 і 7 є ИННСНПННСНПННСНПННСНПННСНПННСНј і і і і і і Нормальный текст ДЩ і і і і АДД Выбранная і і і і операт клавиша Запрещенный текст ДДДДДЩ і і АДДДДДДД Выделенный і і запрещенный Текст оперативной ДДДДДДДДДДЩ АДДДДДДДДДДДД Выделенный клавиши нормальный ----------------------------------------------------------- TStream Objects ----------------------------------------------------------- TStream - это общий абстрактный объект, обеспечивающий полиморфический ввод-вывод устройства типа памяти. Вы може- те создать порожденный объект потока, переопределяя вирту- альные методы GetPos, GetSize, Read, Seek, Truncate и Write. Turbo Vision делает это в порожденных потоках TDosStream и TEmsStream. Для порожденного буферизованного потока Вы должны также переопределять метод TStream.Flush. Поля ----------------------------------------------------------- ErrorInfo (чтение/запись) ErrorInfo: Integer; Содержит дополнительную информацию в случае, когда Status не равен stOK. Для значений Status: stError, stInitError, stReadError, stWriteError, ErrorInfo содержит код ошибки DOS или EMS, если он доступен. Когда Status ра- вен stGetError, ErrorInfo содержит идентификатор ID типа объекта (поле ObjType в TStreamRec) незарегистрированного типа объекта. Когда Status равен stPutError, ErrorInfo со- держит смещение VMT в сегменте данных (поле VmtLink в TStreamRec) незарегистрированного типа объекта. Status (чтение/запись) Status: Integer; Указывает текущее состояние потока. Значение Status представляет собой одну из констант stXXXX. Если Status не равен stOK, то все операции над потоком приостанавливаются до тех пор, пока не будет вызван Reset. См. также: константы потока stXXXX Методы ----------------------------------------------------------- CopyFrom procedure CopyFrom(var S: TStream; Count: Longint); Копирует Count байт из потока S в вызывающий поток. Например: {создает копию всего потока} NewStream := New(TEmsStream, Init(OldStream^.GetSize)); OldStream^.Seek(0); NewStream^.CopyFrom(OldStream, OldStream^.GetSize); См. также: TStream.GetSize, TObject.Init Error procedure Error(Code, Info: Integer); virtual; Переопределяемость: иногда переопределяется. Вызывается каждый раз, когда возникает ошибка потока. По умолчанию TStream.Error сохраняет Code и Info в полях Status и ErrorInfo. Затем, если глобальная переменная StreamError имеет значение, отличное от nil, вызывает про- цедуру, заданную в StreamError. После возникновения ошибки, все операции над потоком приостанавливаются до тех пор, по- ка не будет вызван метод Reset. См. также: TStream.Reset, переменную StreamError Flush procedure Flush; virtual; Переопределяемость: иногда переопределяется. Это абстрактный метод, который должен быть переопреде- лен в случае, если порожденный тип реализует буфер. Этот метод может работать с любыми буферами, очищая буфер чтения и записывая буфер вывода. По умолчанию TStream.Flush ничего не делает. См. также: TDosStream.Flush Get function Get: PObject; Считывает объект из потока и возвращает указатель на него. Объект должен быть предварительно записан в поток с помощью TStream.Put. Get вначале читает из потока идентифи- катор ID типа объекта (слово). Затем он находит соответс- твующий тип объекта, сравнивая ID с полем ObjType всех за- регистрированных типов объектов (см. тип TStreamRec). Нако- нец, вызывает конструктор Load этого типа объекта для соз- дания и инициализации объекта. Если ID типа объекта, счи- танного из потока, равен 0, то Get возвращает указатель nil. Если ID типа объекта не зарегистрирован (с помощью RegisterType), то Get вызывает TStream.Error и возвращает указатель nil; в противном случае Get возвращает указатель на вновь созданный объект. См. также: методы TStream.Put, RegisterType, TStreamRec, Load GetPos function GetPos: Longint; virtual; Переопределяемость: всегда переопределяется. Возвращает текущую позицию в потоке. Этот абстрактный метод должен всегда переопределяться. См. также: TStream.Seek GetSize function GetSize: Longint; virtual; Переопределяемость: всегда переопределяется. Возвращает размер потока. Это абстрактный метод, кото- рый должен переопределяться. Put procedure Put(P: PObject); Записывает объект в поток. Объект позже можно считать из потока, используя метод TStream.Get. Put вначале находит регистрационную запись типа этого объекта, сравнивая смеще- ние VMT объекта с полем VmtLink всех зарегистрированных ти- пов объектов (см. тип TStreamRec). Затем записывает ID типа объекта (поле ObjType регистрационной записи) в поток, и наконец вызывает метод Store этого типа объекта для записи объекта. Если аргумент Р, переданный в Put, имеет значение nil, то метод Put записывает в поток слово, содержащее 0. Если тип объекта в Р не зарегистрирован (с помощью RegisterType), то Put вызывает TStream.Error и ничего не пишет в поток. См. также: методы TStream.Get, RegisterType, TStreamRec, Store Read procedure Read(var Buf; Count: Word); virtual; Переопределяемость: переопределяется всегда. Это абстрактный метод, и он должен переопределяться во всех порожденных типах. Read должен считать Count байт из потока в Buf и переместить текущую позицию потока на Count байт. Если произошла ошибка, то метод Read должен вызывать Error и заполнять Buf Count байтами, равными 0. См. также: TStream.Write, TStream.Error ReadStr function ReadStr: PString; Считывает строку начиная с текущей позиции вызывающего потока, возвращая указатель на PString. TStream.ReadStr вы- зывает GetMem для выделения (Length+1) байт для строки. См. также: TStream.WriteStr Reset procedure Reset; Сбрасывает ошибочное условие потока, устанавливая Status (состояние) и ErrorInfo (информация об ошибке) рав- ными 0. Этот метод позволяет продолжать обработку потока после возникновения ошибочной ситуации, которую Вы скоррек- тировали. См. также: TStream.Status, TStream.ErrorInfo, коды ошибок stXXXX Seek procedure Seek(Pos: Longint); virtual; Переопределяемость: всегда переопределяется. Это абстрактный метод, и он должен переопределяться во всех потомках. TStream.Seek устанавливает текущую позицию в Pos байт от начала потока. Начало потока- позиция 0. См. также: TStream.GetPos Truncate procedure Truncate; virtual; Переопределяемость: всегда переопределяется. Это абстрактный метод, и он должен переопределяться во всех потомках. TStream.Truncate удаляет из потока все дан- ные от текущей позиции до конца. См. также: TStream.GetPos, TStream.Seek Write procedure Write(var Buf; Count: Word); virtual; Переопределяемость: всегда переопределяется. Это абстрактный метод, который должен переопределяться во всех порожденных типах. Write записывает Count байт из Buf в поток и перемещает текущую позицию потока на Count байт. Если возникла ошибка, то Write должен вызвать Error. См. также: TStream.Read, TStream.Error WriteStr procedure WriteStr(P: PString); Записывает строку P^ в вызывающий поток, начиная с те- кущей позиции. См. также: TStream.ReadStr ----------------------------------------------------------- Тип TStreamRec Objects ----------------------------------------------------------- Описание: TStreamRec = record ObjType: Word; VmLink: Word; Load: Pointer; Store: Pointer; Next: Word; end; Функция: Тип объекта Turbo Vision должен иметь заре- гистрированную TStreamRec до его загрузки или сохранения в объекте TStream. Подпрограмма RegisterTypes регистрирует тип объекта, определяя запись TStreamRec. Поля в регистрационной записи потока определены следу- ющим образом: Таблица 19.42. Поля записи потока. ----------------------------------------------------------- Поле Содержимое ----------------------------------------------------------- ObjType Уникальный числовой идентификатор для типа объекта VmtLine Связь типа объекта с элементом VMT (таблицы виртуальных методов) Load Указатель на конструктор Load типа объекта Store Указатель на метод Store типа объекта Next Указатель на следующую TStreamRec ----------------------------------------------------------- Внимание! Turbo Vision резервирует значения идентифи- каторов типов объектов от 0 до 999 для внутреннего исполь- зования. Программист может определить свои значения в диа- пазоне от 1000 до 65535. По соглашению, 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[0..9999] of TStrIndexRec; Функция: Предназначен для внутреннего использования в TStringList и TStrListmaker. ----------------------------------------------------------- Тип TStrIndexRec Objects ----------------------------------------------------------- Описание: TStrIndexRec = record Key, Count, Offset: Word; end; Функция: Служит для внутреннего использования в TStringList и TStrListmaker. ----------------------------------------------------------- TStringCollection Objects ----------------------------------------------------------- Объект TStringCollection является производным от TSortedCollection и реализует отсортированный список строк ASCII. Метод TStringCollection.Compare переопределяется для задания обычного лексикографического упорядочения строк ASCII. Вы можете переопределить метод Compare для задания другого упорядочения, например, для неанглийских наборов символов. Методы ----------------------------------------------------------- Compare function Compare(Key1, Key2: Pointer): Integer; virtual; Переопределяемость: иногда переопределяется. Сравнивает строки Key1^ и Key2^: возвращает -1, если Key1 < Key2; 0, если Key1 = Key2 и +1, если Key1 > Key2. См. также: TSortedCollection.Search FreeItem procedure FreeItem(Item: Pointer); virtual; Переопределяемость: используется редко. Удаляет строку Item^ из отсортированного набора и ос- вобождает память, выделенную под эту строку. GetItem function GetItem(var S: TStream): Pointer; virtual; Переопределяемость: переопределяется редко. По умолчанию читает строку из TStream, вызывая S.ReadStr. См. также: TStream.ReadStr PutItem procedure PutItem(var S: TStream; Item: Pointer); virtual; Переопределяемость: переопределяется редко. По умолчанию записывает строку Item^ в поток S, вызы- вая метод S.WriteStr. См. также: TStream.WriteStr ----------------------------------------------------------- TStringList Objects ----------------------------------------------------------- Объект TStringList предоставляет механизм для доступа к строкам, хранящимся в потоке. Каждая строка, хранящаяся в списке строк, идентифицируется уникальным номером (ключом) в интервале от 0 до 65535. Списки строк занимают меньше па- мяти, чем обычные строки, поскольку строки хранятся в пото- ке, а не в памяти. Кроме того, списки строк легко решают проблему настройки программ на разные языки, поскольку строки не "встроены" в программу. TStringList включает методы только для доступа к стро- кам; для создания списка строк Вы должны использовать TStrListMaker. Заметим, что TStringList и TStrListMaker имеют один ID типа объекта (поле ObjType в TStreamRec) и следовательно, не могут регистрироваться и использоваться одновременно в одной программе. Методы ----------------------------------------------------------- Load constructor Load(var S:TStream); Загружает индекс списка строк из потока S и хранит ссылку на S так, что TStringList.Get может позднее обра- щаться к потоку при чтении строк. Считая, что TStringList был зарегистрирован с помощью RegisterType(RStringList), далее показано, как создать ко- пию списка строк (созданного с помощью TStrListMaker и TResourseFile.Put) из файла ресурса: ResFile.Init(New(TBufStream, Init('MYAPP.RES', stOpenRead, 1024))); Strings := PStringList(ResFile.Get('Strings')); См. также: TStrListMaker.Init, TStringList.Get Done destructor Done; virtual; Переопределяемость: не переопределяется. Освобождает память, выделенную для списка строк. См. также: TStrListMaker.Init, TStringList.Done Get function Get(Key: Word): String; Возвращает строку, заданную Key, или пустую строку, если нет строки с данным Key. Например: P := @FileName; FormatStr(S, Strings^.Get(sLoadingFile), P); См. также: TStringListMaker.Put ----------------------------------------------------------- StrListMaker Objects ----------------------------------------------------------- Объект TStrListMaker- это простой тип объекта, исполь- зуемый для создания списка строк, который используют с TStringList. Следующий фрагмент исходного текста демонстрирует, как создавать и сохранять список строк в файле ресурса. const sInformation = 100; sWarning = 101; sError = 102; sLoadingFile = 200; sSavingFile = 201; var ResFile: TResourceFile; S: TStrListMaker; begin RegisterType(RStrListMaker); ResFile.Init(New(TBufStream, Init('MYAPP.RES', stCreate, 1024))); S.Init(16384, 256); S.Put(sInformation, 'Information'); S.Put(sWarning, 'Warning'); S.Put(sError, 'Error'); S.Put(sLoadingFile, 'Loading file #s.'); S.Put(sSavingFile, 'Saving file #s.'); ResFile.Put(@S,'Strings'); S.Done; ResFile.Done; end; Методы ----------------------------------------------------------- Init constructor Init(AStrSize, AIndexSize: Word); Создает в памяти список строк размера AStrSize с ин- дексом из AIndexSize элементов. В динамической области вы- деляется буфер строк и буфер индексов заданного размера. AStrSize должен быть достаточно велик для хранения всех строк, добавляемых в список строк (каждая строка зани- мает свою длину, плюс 1 байт). При добавлении строк в список строк (с использованием TStrListMaker.Put) строится индекс строк. Строки с последо- вательными ключами (такими, как sInformation, sWarning и sError в предыдущем примере) записываются в одну индексную запись в количестве до 16 за один раз. AIndexSize должен быть достаточно большим для добавления всех сгенерированных индексных записей. Каждый элемент индекса занимает 6 байт. См. также: TStringList.Load, TStrListMaker.Done Done destructor Done; virtual; Освобождает память, выделенную этим объектом. См. также: TStrListMaker.Init Put procedure Put(Key: Word; S: String); Добавляет String к списку строк (с заданным числовым Key). Store procedure Store(var S: TStream); Сохраняет список строк в потоке S. ----------------------------------------------------------- Тип TSysErrorFunc Drivers ----------------------------------------------------------- Описание: TSysErrorFunc = function(ErrorCode: Integer; Drive: Byte): Integer; Функция: Определяет тип функции обработчика системной ошибки. См. также: SysErrorFunc, SystemError, InitSysError, DoneSysError ----------------------------------------------------------- TStringLookupValidator Validate ----------------------------------------------------------- Объект определителя допустимости соответствия строк проверяет данные в связанной строке ввода, осуществляя по- иск в наборе допустимых строк. Используйте определитель до- пустимости соответствия строк в случае, если Ваша строка ввода должна воспринимать только элементы определенного множества строк. Поле ----------------------------------------------------------- Strings Strings: PStringCollection; Указывает на набор строк, содержащий все допустимые строки, которые пользователь может вводить. Если Strings равна nil, то любой ввод будет недопустимым. Методы ----------------------------------------------------------- Init constructor Init (AStrings: PStringCollection); Создает объект определителя допустимости соответствия строк, вызывая сначала конструктор Init, унаследованный от TLookupValidator, а затем устанавливает Strings равным AStrings. См. также: TLookupValidator.Init Load constructor Load(var S: TStream); Создает и загружает объект определителя допустимости соответствия строк из потока S, вызывая сначала конструктор Load, унаследованный от TLookupValidator, а затем считывает набор строк Strings. См. также: TLookupValidator.Load Done destructor Done; virtual; Освобождает память, занятую списком допустимых строк, вызывая NewStringList (nil), а затем освобождает память из-под объекта определителя допустимости соответствия строк, вызывая деструктор Done, унаследованный от TLookupValidator. См. также: TLookupValidator.Done, TStringLookupValidator.NewStringList Error procedure Error; virtual; Выводит сообщение о том, что введенная строка не сов- пала ни с одной из строк списка. Lookup function Lookup (const S: string): Boolean; virtual; Возвращает True в случае, если строка, переданная в S, совпадает с одной из строк из Strings. Использует метод Search набора строк для определения того, содержится ли там строка S. См. также: TSortedCollection.Search NewStringList procedure NewStringList (AStrings: PStringCollection); Устанавливает список допустимых строк ввода для опре- делителя допустимости соответствия строк. Уничтожает любой существующий список строк, а затем устанавливает Strings равным AStrings. Передача в качестве AString значения nil приводит к уничтожению старого списка без создания нового. Store procedure Store(var S: TStream); Записывает объект определителя допустимости соответс- твия строк в поток S, вызывая сначала метод Store, унасле- дованный от TValidator, а затем записывает набор строк, хранящийся в Strings. ----------------------------------------------------------- TTerminal TextView ----------------------------------------------------------- Объект TTerminal реализует "тупой" терминал с буфери- зованным чтением и записью строк. По умолчанию это цикли- ческий буфер размером 64К байт. Отображаемый элемент терми- нала является примером драйвера устройства текстового фай- ла, связанного с прокручиваемым отображаемым элементом. Поля ----------------------------------------------------------- Buffer (только для чтения) Buffer: PTerminalBuffer; Указывает на первый байт буфера терминала. BufSize (только для чтения) BufSize: Word; Размер буфера терминала в байтах. QueBack (только для чтения) QueBack: Word; Смещение (в байтах) последнего байта, сохраненного в буфере терминала. QueFront (только для чтения) QueFront: Word; Смещение (в байтах) первого байта, сохраненного в бу- фере терминала. Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect; AHScrollBar, AVScrollBar: PScrollBar; ABufSize: Word); Создает объект TTerminal с данными границами Bounds, горизонтальной и вертикальной полосами прокрутки и буфером, вызывая конструктор Init, унаследованный от TTextDevice, с аргументами Bounds и полосами прокрутки, затем создает бу- фер (на который указывает Buffer) с BufSize, равным ABufSize. GrowMode устанавливается равным значению gfGrowHiX + gfGrowHiY. QueFront и QueBack инициализируются равными 0, указывая на пустой буфер. Курсор выводится в на- чале отображаемого элемента (0, 0). См. также: TScroller.Init Done destructor Done; virtual; Переопределяемость: иногда используется. Освобождает буфер и вызывает деструктор Done, унасле- дованный от TTextDevice, для уничтожения объекта. См. также: TScroller.Done, TTextDevice.Done BufDec procedure BufDec(var Val: Word); Используется для манипуляции смещением очереди с коль- цевым переносом: если Val = 0, то Val устанавливается рав- ным BufSize-1, в противном случае значение Val уменьшается на 1. См. также: TTerminal.BufInc BufInc procedure BufInc(var Val: Word); Используется для манипуляции смещением очереди с коль- цевым переносом, увеличивая Val на 1; в случае, если Val >= BufSize, то Val устанавливается равным 0. См. также: TTerminal.BufDec CalcWidth function CalcWidth: Integer; Возвращает длину самой длинной строки в текстовом буфере. CanInsert function CanInsert(Amount: Word): Boolean: Возвращает значение True, если число байт, заданное в Amount, можно вставить в буфер без уничтожения верхней строки. Draw procedure Draw; virtual; Переопределяемость: используется редко. Вызывается каждый раз, когда элемент прокрутки TTerminal должен быть отображен заново (например, когда по- лоса прокрутки выбрана мышью, когда изменен размер отобра- жаемого элемента, когда изменены значения Delta, или когда добавление текста приводит к прокрутке). NextLine function NextLine(Pos: Word): Word; Возвращает смещение в буфере начала строки, которая следует за позицией Pos. См. также: TTerminal.PrevLines PrevLines function PrevLines(Pos: Word; Lines: Word): Word; Переопределяемость: иногда переопределяется. Возвращает смещение в буфере начала строки, которая стоит перед позицией Pos на Lines строк. QueEmpty function QueEmpty: Boolean; Возвращает значение True в случае, если QueFront равно QueBack. См. также: TTerminal.QueFront, TTerminal.QueBack StrRead function StrRead(var S: TextBuf) : Byte; virtual; Переопределяемость: иногда используется. Это абстрактный метод, возвращающий 0. Вы должны пере- определить его, если хотите, чтобы производный тип мог чи- тать строки из текстового буфера. StrWrite procedure StrWrite(var S:TextBuf; Count: Byte); virtual; Переопределяемость: переопределяется редко. Вставляет Count строк текста, заданного с помощью S, в буфер терминала. Этот метод управляет любой требуемой прок- руткой, выборочно перерисовывая отображаемый элемент с по- мощью метода DrawView. См. также: TView.DrawView Палитра ----------------------------------------------------------- Объекты терминала используют назначенную по умолчанию палитру CScroller для отображения элементов 6 и 7 стандарт- ной палитры программы. 1 2 ЙНННСННН» CScroller є 6 і 7 є ИНСНПНСНј Нормальный ДДДЩ АДДДД Подсвеченный ----------------------------------------------------------- Тип TTerminalBuffer TextView ----------------------------------------------------------- Описание: TTerminalBuffer = array[0..65519] of Char; Функция: Служит для внутреннего использования в TTerminal. См. также: TTerminal ----------------------------------------------------------- TTextDevice TextView ----------------------------------------------------------- Метод TTextDevice представляет собой прокручиваемый визуализатор текста/драйвер устройства типа TTY. В дополне- ние к полям и методам, наследуемым от TScroller, TTextDevice определяет виртуальные методы для чтения и за- писи строк с устройства и на устройство. TTextDevice су- ществует как базовый тип для порождения реальных драйверов терминалов. TTextDevice использует конструктор и деструктор TScroller. Методы ----------------------------------------------------------- StrRead function StrRead(var S:TextBuf): Byte; virtual; Переопределяемость: часто переопределяется. Абстрактный метод, возвращающий по умолчанию 0. Вы должны переопределить его в любом производном типе для чте- ния строки из текстового устройства в S. Этот метод возвра- щает число прочитанных строк. StrWrite procedure StrWrite(var S: TextBuf; Count: Byte); virtual Переопределяемость: всегда переопределяется. Абстрактный метод для записи строки на устройство. Он должен переопределяться в порожденных типах. Например, TTerminal.StrWrite вставляет Count строк текста, заданных в S, в буфер терминала, и перерисовывает отображаемый эле- мент. Палитра ----------------------------------------------------------- Объекты текстового устройства используют определенную по умолчанию палитру CScroller для отображения 6 и 7 эле- ментов стандартной палитры программы. 1 2 ЙНННСННН» CScroller є 6 і 7 є ИНСНПНСНј Нормальный ДДДЩ АДДДД Подсвеченный ----------------------------------------------------------- Тип TTitleStr Views ----------------------------------------------------------- Описание: TTitleStr = string[80]; Функция: Используется для описания строк текста для окон с заголовками. См. также: TWindow.Title ----------------------------------------------------------- TValidator Validate ----------------------------------------------------------- TValidator определяет абстрактный объект определителя допустимости данных. Вам никогда не придется создавать ко- пию TValidator, однако он обеспечивает большую часть абс- трактных функций для других определителей допустимости дан- ных. Поля ----------------------------------------------------------- Options Options: Word Options представляет собой битовое поле, используемое для управления различными потомками TValidator. По умолча- нию TValidator.Init сбрасывает все биты в Options. См. также: константы voXXXX Status Status: Word Указывает состояние объекта определителя допустимости. Если Status равно stOK, то объект определителя допустимости создан правильно. Любое значение, отличное от stOK, указы- вает на то, что произошла ошибка. См. также: TInputLine.Valid, константу ValidatorOK Методы ----------------------------------------------------------- Init constructor Init; Создает абстрактный объект определителя допустимости, вызывая сначала конструктор Init, унаследованный от TObject, а затем устанавливает поля Options и Status равны- ми 0. См. также: TObject.Init Load constructor Load(var S: TStream); Создает объект определителя допустимости, вызывая сна- чала конструктор Load, унаследованный от TObject, а затем считывает из потока S поле Options. См. также: TObject.Init Error procedure Error; virtual; Error представляет собой абстрактный метод, вызываемый Valid в случае, когда он обнаруживает, что пользователь ввел ошибочную информацию. По умолчанию TValidator.Error ничего не делает, однако порожденные типы могут переопреде- лять Error для обеспечения обратной связи с пользователем. IsValidInput function IsValidInput (var S: string; SupressFill: Boolean): Boolean; virtual; Если строка ввода имеет связанный с ней объект опреде- лителя допустимости, то он вызывает IsValidInput после об- работки каждого события от клавиатуры. Это дает объекту оп- ределителя допустимости, такому, как фильтр допустимости, возможность отлавливать ошибки до того, как пользователь заполнит весь элемент или экран. По умолчанию TValidator.IsValidInput возвращает True. Порожденные определители допустимости данных могут переоп- ределять IsValidInput для проверки допустимости данных по мере того, как пользователь вводит их, и возвращать True в случае, если S содержит верные данные, и False в противном случае. S представляет собой текущую строку ввода. SupressFill определяет, должен ли определитель автоматически форматиро- вать строку перед проверкой допустимости данных. Если SupressFill равно True, то определитель допустимости рабо- тает с неизмененной строкой S. Если SupressFill равно False, то перед проверкой допустимости данных осуществляет- ся их ввод. Из стандартных определителей допустимости лишь TPXPictureValidator проверяет значение SupressFill. Поскольку S является параметром типа var, IsValidInput может производить изменения содержимого строки ввода, та- кие, как преобразование букв в заглавные или вставление буквенных символов из картинки формата. IsValidInput не должен, однако, удалять из строки недопустимые символы. Возвращая False, IsValidInput указывает на то, что строка ввода должна сама стереть ошибочные символы. IsValid function IsValid (const S: string): Boolean; virtual; По умолчанию TValidator.IsValid возвращает True. По- рожденные типы определителей допустимости могут переопреде- лять IsValid так, чтобы он проверял данные для полностью введенной строки. Если строка ввода имеет связанный с ней объект определителя допустимости, то ее метод Valid вызыва- ет метод Valid объекта определителя допустимости, который в свою очередь вызывает IsValid для определения того, являет- ся ли содержимое строки ввода допустимым. См. также: TInputLine.Valid, TValidator.Valid Store procedure Store(var S: TStream); Записывает объект определителя допустимости в поток S, записывая поле Options. Transfer function Transfer (var S: String;Buffer: Pointer; Flag: TVTransfer): Word;virtual; Transfer позволяет определителю допустимости изменять установки и считывать значения связанной строки ввода, что особенно полезно для определителей допустимости, проверяю- щих нестроковые типы данных, такие, как численные значения. Например, TRangeValidator использует Transfer для чтения и записи значений типа Longint в запись данных, вместо того, чтобы передавать всю строку. По умолчанию строки ввода с определителями допустимос- ти дают определителю возможность ответить на DataSize, GetData и SetData, вызывая метод Transfer определителя до- пустимости. Если Transfer возвращает что-либо, отличное от 0, то это говорит строке ввода о том, что она имеет дело с правильной передачей. По умолчанию TValidator.Transfer всегда возвращает 0. Если Вы хотите, чтобы определитель осуществлял передачу данных, то необходимо переопределять его метод Transfer. Первые два параметра Transfer представляют собой свя- занную со строкой ввода текстовую строку и запись данных GetData или SetData. В зависимости от значения Flag Transfer может устанавливать значение S из Buffer или счи- тывать данные из S в буфер. Возвращаемое значение всегда представляет собой число переданных байт. Если Flag равен vtDataSize, то Transfer не изменяет ни S, ни Buffer, а просто возвращает размер данных. Если Flag равен vtSetData, то Transfer считывает соответствующее чис- ло байт из Buffer, преобразует их в строковую форму и прис- ваивает эту строку S, возвращая количество считанных байт. Если Flag равен vtGetData, то Transfer преобразует S в со- ответствующий тип данных и записывает это значение в Buffer, возвращая число записанных байт. См. также: TInputLine.DataSize, TInputLine.GetData, TInput- Line.SetData Valid function Valid (const S: string): Boolean; Возвращает True в случае, если IsValid (S) возвращает True. В противном случае вызывает Error и возвращает False. Метод Valid определителя допустимости вызывается методом Valid связанной строки ввода. Строки ввода со связанными определителями допустимости вызывают метод Valid определителя допустимости при двух ус- ловиях: либо у строки ввода установлена опция ofValidate, в случае чего она вызывает Valid при потере фокуса, либо диа- логовое окно, содержащее строку ввода, вызывает Valid для всех его управляющих элементов, обычно потому, что пользо- ватель сделал запрос о закрытии диалогового окна или о вво- де набранных данных. См. также: TInputLine.Valid, TValidator.Error, TValidator.Is- Valid ----------------------------------------------------------- Тип TVideoBuf Views ----------------------------------------------------------- Описание: TVideoBuf = array[0..3999] of Word; Функция: Используется для описания видеобуферов. См. также: TGroup.Buffer ----------------------------------------------------------- TView Views ----------------------------------------------------------- Тип объекта TView существует для того, чтобы предоста- вить основные поля и методы для порожденных объектов. Воз- можно, что Вы никогда не будете создавать экземпляры самих объектов TView, однако большая часть общего поведения отоб- ражаемых элементов Turbo Vision происходит от TView. Поля ----------------------------------------------------------- Cursor (только для чтения) CurSor: TPoint; Положение аппаратного курсора внутри отображаемого элемента. Курсор видим только в том случае, если отображае- мый элемент активен (sfFocused) и курсор включен (sfCursorVis). Форма курсора - это подчеркивание или прямо- угольник (определен sfCursorIns). См. также: SetCursor, ShowCursor, HideCursor, NormalCursor, BlockCursor DragMode (чтение/запись) DragMode: Byte; Определяет поведение отображаемого элемента при пере- мещении с помощью "мыши". Биты DragMode определены следующим образом: ЪДДД DragMode ДДї msb lsb ЪДВДВДВДДДДДДДДДДД dmLimitAll = $F0 ЙПСПСПСПСНСНСНСН» ИСПСПСПСПНПНПСПСј і і і і і АДДД dmDragMove = $01 і і і і АДДДДД dmDragGrow = $02 і і і АДДДДДДДДДДД dmLimitLoX = $10 і і АДДДДДДДДДДДДД dmLimitLoY = $20 і АДДДДДДДДДДДДДДД dmLimitHiX = $40 АДДДДДДДДДДДДДДДДД dmLimitHiY = $80 Рис. 19.12. Отображение битов в DragMode. Маски DragMode определены в разделе "Константы DragMode dmXXXX" настоящей главы. См. также: TView.DragView EventMask (чтение/запись) EventMask: Word; EventMask представляет собой битовую маску, которая определяет, какие классы событий будут распознаваться отоб- ражаемым элементом. По умолчанию EventMask разрешает evMouseDown, evKeyDown и evCommand. Назначение EventMask равным $FFFF заставляет отображаемый элемент реагировать на все классы событий, а значение 0 приводит к тому, что отоб- ражаемый элемент не реагирует ни на какие события. Для под- робного описания классов событий см. раздел "Константы со- бытий evXXXX" настоящей главы. См. также: методы HandleEvent GrowMode (чтение/запись) GrowMode: Byte; Определяет, как отображаемый элемент будет увеличи- ваться, когда его владелец изменяет размер. GrowMode прис- ваивается одна или несколько следующих масок: ЪДДД GrowMode ДДї старший бит младший бит ЪДВДВДВДДД gfGrowAll = $0F ЙНСНСНСНСПСПСПСП» ИСПНПСПСПСПСПСПСј АДВДЩ і і і і АДДД gfGrowLoX = $01 і і і і АДДДДД gfGrowLoY = $02 Не определеноі і АДДДДДДД gfGrowHiX = $04 і АДДДДДДДДД gfGrowHiY = $08 АДДДДДДДДДДД gfGrowRel = $10 Рис. 19.13. Расположение битов в GrowMode. Пример: GrowMode := gfGrowLoX or gfGrowLoY; См. также: константы изменения размера gfXXXX HelpCtx (чтение/запись) HelpCtx: Word; Контекст подсказки отображаемого элемента. Когда отоб- ражаемый элемент активен, это поле представляет собой кон- текст подсказки программы, если номер контекста подсказки не равен hcNoContext, в случае чего контекст подсказки сов- падает с контекстом подсказки владельца. См. также: TView.GetHelpCtx Next (только для чтения) Next: PView; Указывает на следующий равнозначный отображаемый эле- мент в циклическом порядке. Если это последний подэлемент, то Next указывает на первый отображаемый подэлемент вла- дельца Owner. Options (чтение/запись) Options: Word; Слово флагов Options (параметры) определяет поведение отображаемого элемента. Биты поля Options определены следующим образом: ЪДДДДДДДД TView.Options ДДДДДДДДї старший бит младший бит ЪДВДДДДДДДДДДДДДДДДДДД ofCentered = $0300 ЙНСНСНСНСНСНСПСПСНСНСНСНСНСНСНСН» ИСПНПНПНПНПСПСПСПСПСПСПСПСПСПСПСј АДДДДВДДДДЩ і і і і і і і і і АДДД ofSelectable =$0001 і і і і і і і і і АДДДДД ofTopSelect =$0002 Не определено і і і і і і і АДДДДДДД ofFirstClick =$0004 і і і і і і АДДДДДДДДД ofFramed =$0008 і і і і і АДДДДДДДДДДД ofPreProcess =$0010 і і і і АДДДДДДДДДДДДД ofPostProcess=$0020 і і і АДДДДДДДДДДДДДДД ofBuffered =$0040 і і АДДДДДДДДДДДДДДДДД ofTileable =$0080 і АДДДДДДДДДДДДДДДДДДД ofCenterX =$0100 АДДДДДДДДДДДДДДДДДДДДД ofCenterY =$0200 Рис. 19.14. Биты в Options. Для подробного описания флагов см. раздел "Константы флагов параметров ofXXXX" настоящей главы. Origin (только для чтения) Origin: TPoint; Координаты (X, Y) левого верхнего угла отображаемого элемента относительно Origin владельца. См. также: MovTo, Locate Owner (только для чтения) Owner: PGroup; Указывает на объект группы, который владеет этим отоб- ражаемым элементом. В случае значения nil, отображаемый элемент не имеет владельца. Отображаемый элемент показыва- ется внутри отображаемого элемента владельца и будет отсе- каться по ограничивающему прямоугольнику владельца. Size (только для чтения) Size: TPoint; Размер отображаемого элемента. См. также: GrowTo, Locate State (только для чтения) State: Word; Состояние отображаемого элемента представлено набором бит в поле State. Многие методы TView проверяют и/или изме- няют поле State, вызывая TView.SetState. TView.GetState(AState) возвращает значение True в случае, если State отображаемого элемента равно AState. Биты State представлены мнемоническими константами, описанными в раз- деле "Константы флагов состояния sfXXXX" настоящей главы. Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect); Переопределяемость: часто используется. Создает объект TView с заданным прямоугольником Bounds. Метод Init вызывает конструктор Init, унаследован- ный от TObject, а затем устанавливает поля нового TView равными следующим значениям: ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Owner nil Next nil Origin (Bounds.A.X, Bounds.A.Y) Size (Bounds.B.X-Bounds.A.X,Bounds.B.Y-Bounds.A.Y) Cursor (0, 0) GrowMode 0 DragMode dmLimitLoY HelpCtx heNoContext State sfVisible Options 0 EventMask evMouseDown + evKeyDown + evCommand ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Заметим, что TObject.Init заполняет нулями все поля потомков TView. Всегда вызывайте TView.Init до инициализа- ции любых полей. См. также: TObject.Init Load constructor Load(var S: TStream); Переопределяемость: часто переопределяется. Создает объект TView и загружает его из потока S. Раз- мер данных, считываемых из потока, должен в точности соот- ветствовать размеру данных, записанных в поток методом Store. Если отображаемый элемент содержит указатели на рав- нозначные отображаемые элементы, то Load должен использо- вать для чтения этих указателей GetPeerViewPtr. Переопреде- ленный конструктор Load всегда должен вызывать конструктор Load своего предка. По умолчанию TView.Load устанавливает поля Owner и Next равными nil и считывает оставшиеся поля из потока. Owner и Next устанавливаются владельцем отображаемого эле- мента после загрузки всех подэлементов. См. также: TView.Store, TStream.Get, TStream.Put Done destructor Done; virtual; Переопределяемость: часто используется. "Скрывает" отображаемый элемент (делает его невиди- мым), а затем, если он имеет владельца, удаляет его из группы. Awaken procedure Awaken; virtual; По умолчанию TView.Awaken ничего не делает. Когда группа загружается из потока, последнее, что делает конс- труктор Load, это вызов методов Awaken всех подэлементов, что дает им возможность проинициализировать себя при усло- вии, что загружены все подэлементы. Это гарантирует допус- тимость всех указателей, прочитанных с помощью GetPeerViewPtr. Если Вы создаете объекты, зависящие от других подэле- ментов, и инициализирующие себя после того, как они считаны из потока, можно переопределить Awaken, чтобы он выполнил эту инициализацию. См. также: TView.GetPeerViewPtr BlоckCursor procedure BlоckCursor; Переопределяемость: не используется. Устанавливает sfCursorIns, чтобы придать курсору форму заполненного прямоугольника. Курсор будет видимым только в том случае, если установлен sfCursorVis (и отображаемый элемент также видим). См. также: sfCursorIns, sfCursorVis, TView.NormalCursor, TView.ShowCursor, TView.HideCursor CalcBounds procedure CalcBounds(var Bounds: TRect; Delta: TPoint); virtual; Переопределяемость: переопределяется редко. Когда владелец отображаемого элемента изменяет размер, он вызывает методы CalcBounds и ChangeBounds для всех подэ- лементов. CalcBounds должен вычислять новые границы отобра- жаемого элемента на основе Delta, на которое изменился раз- мер его владельца, и возвращать новые границы в Bounds. TView.CalcBounds вычисляет новые границы, используя флаги, заданные в поле TView.GrowMode. См. также: TView.GetBounds, TView.ChangeBounds, конс- танты режима увеличения gfXXXX ChangeBounds procedure ChangeBounds(var Bounds: TRect); virtual; Переопределяемость: используется редко. Должен изменять границы отображаемого элемента (поля Origin и Size) до размеров прямоугольника, заданного пара- метром Bounds. После изменения границ ChangeBounds должен перерисовать отображаемый элемент. ChangeBounds вызывается различными методами TView, но не должен вызываться непос- редственно. Метод TView.ChangeBound вызывает сначала SetBounds(Bounds), а затем вызывает DrawView. См. также: TView.Locate, TView.MoveTo, TView.GrowTo ClearEvent procedure ClearEvent(var Event: TEvent); Этот стандартный метод используется в HandleEvent для указания того, что отображаемый элемент успешно обработал событие. Устанавливает Event.What равным evNоthing, а Event.InfoPtr равным @Self. См. также: методы HandleEvent CommandEnabled function CommandEnabled(Command: Word): Boolean; Возвращает значение True в случае, если команда Command разрешена, и False в противном случае. Заметим, что когда Вы изменяете режимное состояние, можно запретить или разрешить необходимые команды. Однако, когда Вы возвращае- тесь в предыдущее режимное состояние, исходный набор команд будет восстановлен. См. также: TView.DisableCommand, TView.EnableCommand, TView.SetCommands DataSize function DataSize: Word; virtual; Переопределяемость: используется редко. Метод DataSize должен возвращать размер данных, считы- ваемых и записываемых в запись данных с помощью методов SetData и GetData. Механизм записи данных обычно использу- ется только в отображаемых элементах, которые реализуют элементы управления для диалоговых окон. Чтобы указать на тот факт, что данные не передавались, метод TView.DataSize возвращает нулевое значение. См. также: TView.GetData, TView.SetData DisableCommands procedure DisableCommands(Commands: TCommandSet); Запрещает команды, указанные в аргументе Commands. См. также: TView.CommandEnabled, TView.EnableCommands, TView.SetCommands DragView procedure DragView (Event: TEvent; Mode: Byte; var Limits: TRect; MinSize, MaxSize: TPoint); Перемещает отображаемый элемент, используя режим пере- мещения, заданный флагами dmXXXX в параметре Mode. Параметр Limits указывает прямоугольник (в системе координат вла- дельца), внутри которого может перемещаться отображаемый элемент, а Min и Max указывают минимальный и максимальный размеры отображаемого элемента, которые он может принимать. Событие, приводящее к операции перемещения "мышью", требу- ется в Event для того, чтобы отличить перемещения "мышью" от использования клавиш управления курсором. См. также: TView.DragMode, константы режима увеличения dmXXXX Draw procedure Draw; virtual; Переопределяемость: всегда переопределяется. Вызывается всякий раз, когда отображаемый элемент дол- жен отобразиться заново. Метод Draw должен покрывать всю область отображаемого элемента. Этот метод должен соответс- твенно переопределяться для каждого порожденного объекта. В общем, Draw не следует вызывать напрямую, поскольку более эффективно использовать DrawView, который рисует только видимые на экране отображаемые элементы, т.е. эле- менты, часть которых или весь отображаемый элемент видимы на экране. При необходимости Draw может вызвать метод GetClipRect для получения прямоугольника, который необходи- мо перерисовать, а затем рисовать только эту область. Для сложных отображаемых элементов это может значительно улуч- шить производительность. См. также: TView.DrawView DrawView procedure DrawView; Вызывает Draw каждый раз, когда TView.Exposed возвра- щает значение True, что указывает на тот факт, что отобра- жаемый элемент видим на экране (см. sfExposed). Вы должны вызвать DrawView (а не Draw), когда необходимо заново вы- вести отображаемый элемент после изменения, которое воз- действует на его видимое изображение. См. также: TView.Draw, TGroup.ReDraw, TView.Exposed EnableCommands procedure EnableCommands(Commands: TCommandSet); Разрешает все команды в параметре Commands. См. также: TView.DisableCommands, TView.GetCommands, TView.CommandEnabled, TView.SetCommands EndModal procedure EndModal(Command: Word); virtual; Переопределяемость: никогда не переопределяется. Завершает текущее режимное состояние и возвращает Command в качестве результата вызова функции ExecView, ко- торая создала это режимное состояние. См. также: TGroup.ExecView, TGroup.Execute, TGroup.EndModal EventAvail function EventAvail: Boolean; Возвращает значение True в случае, если событие дос- тупно для GetEvent. См. также: TView.MouseEvent, TView.KeyEvent, TView.GetEvent Execute function Execute: Word; virtual; Переопределяемость: используется редко. Вызывается из TGroup.ExecView каждый раз, когда отоб- ражаемый элемент становится режимным. Если отображаемый элемент допускает режимное выполнение, то он должен переоп- ределить Execute для реализации цикла событий. Результатом Execute становится значение, возвращаемое из ExecView. TView.ExecView просто возвращает cmCancel. См. также: sfModal, TGroup.Execute, TGroup.ExecView Exposed function Exposed: Boolean; Возвращает значение True, если какая-либо часть отоб- ражаемого элемента видима на экране. См. также: sfExposed, TView.DrawView Focus function Focus: Boolean; Выбирает отображаемый элемент и делает его активным, возвращая True в случае, если владелец отображаемого эле- мента возвращает из Focus значение True, и если элемент не является ни выбранным, ни режимным, или если он не имеет владельца. В противном случае возвращает False. Различие между Focus и Select заключается в том, что Focus может завершиться неудачно. То есть, другой элемент может не отдать фокус, обычно вследствие того, что он со- держит недопустимые данные, которые должны быть исправлены перед передачей фокуса. См. также: TView.Select GetBounds procedure GetBounds(var Bounds: TRect); Возвращает в переменной Bounds ограничивающий прямоу- гольник отображаемого элемента в координатной системе его владельца. Bounds.A устанавливается равным Origin, а Bounds.B устанавливается равным сумме Origin и Size. См. также: TView.Origin, TView.Size, TView.CalcBounds, TView.ChangeBounds, TView.SetBounds, TView.GetExtent GetClipRect procedure GetClipRect(var Clip: TRect); Возвращает в переменной Clip минимальный прямоуголь- ник, который требуется перерисовать в вызове Draw. Для сложных отображаемых элементов Draw может использовать GetClipRect для значительного улучшения производительности. См. также: TView.Draw GetColor function GetColor(Color: Word): Word; Преобразует индексы палитры младшего и старшего байта Color в физические атрибуты символа, просматривая палитру отображаемого элемента и палитры всех его владельцев. См. также: TView.GetPalette GetCommands procedure GetCommands(var Commands: TCommandSet); Устанавливает Commands равным текущему набору команд. См. также:TView.CommandsEnabled,TView.EnableCommands, TView.DisableCommands,TView.SetCommands GetData procedure GetData(var Rec); virtual; Переопределяемость: используется редко. Метод GetData должен копировать DataSize байт из отоб- ражаемого элемента в запись данных Rec. Механизм записей данных обычно используется только в отображаемых элементах, которые реализуют элементы управления для диалоговых окон. По умолчанию TView.GetData ничего не делает. См. также: TView.DataSize, TView.SetData GetEvent procedure GetEvent(var Event: TEvent); virtual; Переопределяемость: используется редко. Устанавливает Event равным следующему доступному собы- тию. Возвращает evNothing, если доступных событий нет. По умолчанию он вызывает GetEvent владельца отображаемого эле- мента. См. также: TView.EventAvail, TProgram.Idle, TView.HandleEvent, TView.PutEvent GetExtent procedure GetExtent(var Extent: TRect); Возвращает в переменной Extent ограничивающий прямоу- гольник отображаемого элемента. Extent.A устанавливается равным (0, 0), а Extent.B устанавливается равным Size. См. также: TView.Origin, TView.Size, TView.CalcBounds, TView.ChangeBounds, TView.SetBounds, TView.GetBounds GetHelpCtx function GetHelpCtx: Word; virtual; Переопределяемость: используется редко. Метод GetHelpCtx должен возвращать контекст подсказки отображаемого элемента. По умолчанию TView.GetHelpCtx возвращает значение поля HelpCtx или возвращает hcDragging, если отображаемый эле- мент перемещается мышкой (см. sfDragging). См. также: HelpCtx GetPalette function GetPalette: PPalette; virtual; Переопределяемость: всегда переопределяется. Данный метод должен возвращать указатель на палитру отображаемого элемента или nil, если отображаемый элемент не имеет палитры. GetPalette вызывается из GetColor, WriteChar и WriteStr при преобразовании индексов палитры в физические атрибуты символов. При возвращаемом значения nil, преобразование цвета этим отображаемым элементом не производится. GetPalette почти всегда переопределяется в порожденных типах объектов. По умолчанию TView.GetPalette возвращает значение nil. См. также: TView.GetColor, TView.WriteXXXX GetPeerViewPtr procedure GetPeerViewPtr(var S: TStream; var P); Загружает указатель Р равнозначного отображаемого эле- мента из потока S. Равнозначный отображаемый элемент - это отображаемый элемент, имеющий того же владельца, что и у этого отображаемого элемента. Например, TScroller содержит 2 равнозначных отображаемых элемента HScrollBar и VScrollBar. GetPeerViewPtr должен использоваться только внутри конструктора Load для чтения значений указателей, которые были записаны при вызове PutPeerViewPtr из метода Store. Внимание! Загруженное в Р значение не является дейс- твительным до тех пор, пока владелец отображаемого элемента не завершит полностью операцию Load; следовательно измене- ние указателя на равнозначный отображаемый элемент внутри конструктора Load не дает правильного значения. Указатели на равнозначные элементы могут изменяться в методах Awaken, которые вызываются методом Load группы после того, как оп- ределяются все подэлементы. См. также: TView.PutPeerViewPtr, TGroup.Load, TGroup.Store GetState function GetState(AState: Word): Boolean; Возвращает значение True в случае, если бит(ы) из AState установлен(ы) в поле State. См. также: State, TView.SetState GrowTo procedure GrowTo(X, Y: Integer); Увеличивает или уменьшает отображаемый элемент до дан- ного размера, используя вызов TView.Locate. См. также: TView.Origin, TView.Locate, TView.MoveTo HandleEvent procedure HandleEvent(var Event: TEvent);virtual; Переопределяемость: всегда переопределяется. HandleEvent представляет собой центральный метод, пос- редством которого реализована вся обработка событий Turbo Vision. Поле What параметра Event содержит класс события (evXXXX), а оставшиеся поля Event описывают событие. Для указания того, что он обработал событие, метод HandleEvent должен вызывать ClearEvent. Метод HandleEvent почти всегда переопределяется в порожденных типах объектов. TView.HandleEvent обрабатывает события evMouseDown следующим образом: если отображаемый элемент не выбран (sfSelected) и не запрещен (sfDisabled), и если отображае- мый элемент является выбираемым (ofSelectable), то отобра- жаемый элемент выбирается с помощью вызова Select. Другие события в TView.HandleEvent не обрабатываются. См. также: TView.ClearEvent Hide procedure Hide; "Скрывает" отображаемый элемент, вызывая SetState для сброса флага sfVisible в State. См. также: sfVisible, TView.SetState, TView.Show HideCursor procedure HideCursor; "Скрывает" курсор, сбрасывая бит sfCursorVis в State. См. также: sfCursorVis, TView.ShowCursor KeyEvent procedure KeyEvent(var Event: TEvent); Возвращает в переменной Event следующее событие evKeyDown. Он ожидает события от клавиатуры, игнорируя все другие события. См. также: TView.GetEvent, TView.EventAvail Locate procedure Locate(var Bounds: TRect); Изменяет границы отображаемого элемента на Bounds. Отображаемый элемент перерисовывается в его новом положе- нии. Метод Locate вызывает SizeLimits для проверки того, что данные границы Bounds правильны, а затем вызывает метод ChangeBounds для изменения границ и заново выводит отобра- жаемый элемент. См. также: TView.GrowTo, TView.MoveTo, TView.ChangeBounds MakeFirst procedure MakeFirst; Перемещает отображаемый элемент на вершину списка по- дэлементов владельца. Вызов MakeFirst соответствует PutInFrontOf(Owner^.First). См. также: TView.PutInFrontOf MakeGlobal procedure MakeGlobal(Source: TPoint; var Dest:TPoint); Преобразует координаты точки Sourсe из локальных (ко- ординаты отображаемого элемента) в глобальные (координаты экрана) и возвращает результат в Dest. Source и Dest могут быть одной переменной. См. также: TView.MakeLocal MakeLocal procedure MakeLocal(Source: TPoint; var Dest:TPoint); Преобразует координаты точки Source из глобальных (эк- ран) в локальные (отображаемый элемент) и возвращает ре- зультат в Dest. Полезно для преобразования поля Event.Where в событии evMouse из глобальных координат в локальные. Нап- ример MakeLocal(Event.Where, MouseLoc). См. также: TView.MakeGlobal, TView.MouseInView MouseEvent function MouseEvent(var Event: TEvent; Mask: Word): Boolean; Возвращает следующее событие от "мыши" в Event. Возв- ращает значение True в случае, если возвращенное событие есть в аргументе Mask, и False, если возникло событие evMouseUp. Этот метод позволяет отслеживать "мышь", когда ее кнопка нажата, например в операциях отметки блока с по- мощью "мыши" в текстовых редакторах. Ниже приведем фрагмент текста HandleEvent, который отслеживает положение "мыши" курсором отображаемого элемен- та. procedure TMyView.HandleEvent(var Event: TEvent); begin TView.HandleEvent(Event); case Event.What of evMouseDown: begin repeat MakeLocal(Event.Where, Mouse); SetCursor(Mouse.X, Mouse.Y); until not MouseEvent(Event, evMouseMove); ClearEvent(Event); end; ... end; end; См. также: TView.EventMasks, TView.KeyEvent, TView.GetEvent MouseInView function MouseInView (Mouse: TPoint): Boolean; Возвращает значение True в случае, если аргумент Mouse (заданный в глобальных координатах) находится внутри отоб- ражаемого элемента. См. также: TView.MakeLocal MoveTo procedure MoveTo(X, Y: Integer); Перемещает Origin в точку (X, Y) относительно владель- ца отображаемого элемента. Размер Size отображаемого эле- мента не изменяется. См. также: Origin, Size, TView.Locate, TView.GrowTo NextView function NextView: PView; Возвращает указатель на следующий подэлемент в списке подэлементов владельца. Возвращается nil, если отображаемый элемент является последним в списке подэлементов владельца. См. также: TView.PrevView, TView.Prev, TView.Next NormalCursor procedure NormalCursor; Сбрасывает бит sfCursorIns в State, переводя курсор в режим подчеркивания. Если sfCursorVis установлен, то будет отображаться новый курсор. См. также: sfCursorIns, sfCursorVis, TView.HideCursor, TView.BlockCursor, TView.HideCursor Prev function Prev: PView; Возвращает указатель на предыдущий подэлемент в списке подэлементов владельца. Если отображаемый элемент первый в списке владельца, то Prev возвращает последний отображаемый элемент в списке. Заметим, что TView.Prev интерпретирует список как кольцевой, в то время как TView.PrevView интерп- ретирует его как линейный. См. также: TView.NextView, TView.PrevView, TView.Next PrevView function PrevView: PView; Возвращает указатель на предыдущий подэлемент в списке подэлементов владельца. Возвращается nil, если отображаемый элементпервый в списке подэлементов владельца. Заметим, что TView.Prev интерпретирует список как кольцевой, а TView.PrevView- как линейный. См. также: TView.NextView, TView.Prev PutEvent procedure PutEvent(var Event: TEvent); virtual; Переопределяемость: используется редко. Помещает событие, заданное в Event, в очередь событий, в результате чего это событие будет следующим событием, возвращаемым GetEvent. Этим способом в очередь событий мо- жет быть помещено только одно событие. Это часто использу- ется отображаемыми элементами, генерирующими командные со- бытия, например: Event.What := evCommand; Event. Command := cmSaveAll; Event.InfoPtr := nil; PutEvent(Event); По умолчанию TView.PutEvent вызывает метод PutEvent владельца отображаемого элемента. См. также: TView.EventAvail, TView.GetEvent, TView.HandleEvent PutInFrontOf procedure PutInFrontOf(Target: PView); Помещает отображаемый элемент перед отображаемым эле- ментом Target в списке подэлементов владельца. Вызов TView.PutInFontOf(Owner^.First); эквивалентен TView.MakeFirst. Этот метод работает, изменяя указатели в списке подэлементов. В зависимости от положения других отображаемых элементов и их состояния, PutInFrontOf может отсекать закрываемые отображаемые элементы. Если отображаемый элемент выбираемый (см. ofSelectable) и поме- щается поверх всех других подэлементов, то этот отображае- мый подэлемент становится выбранным. См. также: TView.MakeFirst PutPeerViewPtr procedure PutPeerViewPtr(var S: TStream; P: PView); Сохраняет указатель P на равнозначный отображаемый элемент в потоке S. Равнозначный отображаемый элемент - это отображаемый элемент с тем же владельцем, что и этот отоб- ражаемый элемент. Метод PutPeerViewPtr должен использовать- ся только внутри метода Store для записи значений указате- лей, которые позже могут быть считаны с помощью GetPeerViewPtr в конструкторе Load. См. также: TView.PutPeerViewPtr, TGroup.Load, TGroup.Store Select procedure Select; Выделяет отображаемый элемент (см. sfSelected). Если владелец отображаемого элемента является активным, то отоб- ражаемый элемент так же активизируется (см. sfFocused). Ес- ли отображаемый элемент имеет установленный флаг ofTopSelect в поле Options, то отображаемый элемент переме- щается на вершину списка подэлементов владельца (используя вызов TView.MakeFirst). См. также: sfSelected, sfFocused, ofTopSelect, TView.MakeFirst SetBounds procedure SetBounds(var Bounds: TRect); Устанавливает ограничивающий прямоугольник отображае- мого элемента равным значению параметра Bounds. Поле Origin устанавливается равным Bounds.A, а поле Size устанавливает- ся равным значение разности Bounds.B Bounds.A. Метод SetBounds вызывается только из переопределенного метода ChangeBounds- Вы не должны вызывать SetBounds непосредс- твенно. См. также: TView.Origin, TView.Size, TView.CalcBounds, TView.ChangeBounds, TView.GetBounds, TView.GetExtent SetCmdState procedure SetCmdState (Commands: TCommandSet; Enable: Boolean); Разрешает Commands в случае равенства Enable True, и запрещает их в случае равенства Enable False. SetCmdState является оперативной клавишей для использования EnableCommands или DisableCommands. См. также: TView.DisableCommands, TView.EnableCommands SetCommands procedure SetCommands(Commands: TCommandSet); Изменяет текущий набор команд на заданный аргументом Com- mаnds. См. также: TView.EnableCommands, TView.DisableCommands SetCursor procedure SetCursor(X, Y: Integer); Перемещает аппаратный курсор в точку (X, Y), используя относительные координаты отображаемого элемента (локаль- ные). (0, 0)- это левый верхний угол. См. также: TView.MakeLocal, TView.HideCursor, TView.ShowCursor SetData procedure SetData(var Rec); virtual; Переопределяемость: используется редко. Метод SetData должен копировать DataSize байт из запи- си данных Rec в отображаемый элемент. Механизм записи дан- ных обычно используется только в отображаемых элементах, которые реализуют элементы управления для диалоговых окон. По умолчанию TView.SetData ничего не делает. См. также: TView.DataSize, TView.GetData SetState procedure SetState(AState: Word; Enable: Boolean); virtual; Переопределяемость: иногда используется. Устанавливает или сбрасывает флаг состояния в поле TView.State. Параметр AState задает флаг состояния, который будет изменяться (см. sfXXXX), а параметр Enable указывает, будет этот флаг устанавливаться (True) или сбрасываться (False). TView.SetState затем выполняет соответствующие действия для отражения нового состояния, такие как перери- совка отображаемых элементов, которые, будучи невидимы на экране, становятся видимыми (sfVisible) или перепрограмми- рование аппаратной части в случаях, когда изменяется форма курсора (sfCursorVis и sfCursorIns). Внимание! Если отображаемый элемент переопределяет SetState, то он должен всегда вызывать сначала унаследован- ный метод SetState для того, чтобы убедиться в том, что указанные биты устанавливаются или сбрасываются. Метод SetState иногда переопределяется для выполнения дополнительных действий, основанных на флагах состояний. Например, тип TFrame переопределяет метод SetState для пе- рерисовки самого себя каждый раз, когда окно выбирается или перемещается с помощью "мыши": procedure TFrame.SetState(AState: Word; Enable: Boolean); begin TView.SetState(AState, Enable); if AState and (sfActive + sfDragging) <> 0 then DrawView; end; Другая распространенная причина возможного переопреде- ления SetState- это необходимость разрешить или запретить команды, которые обрабатываются определенным отображаемым элементом. procedure TMyView.SetState(AState: Word; Enable: Boolean); const MyCommands = [cmOut, cmCopy, cmPaste, cmClear] begin TView.SetState(AState, Enable); if AState = sfSelected then if Enable then EnableCommands(MyCommands) else DisableCommands(MyCommands); end; См. также: TView.GetState, TView.State, константы фла- га состояния sfXXXX Show procedure Show; Показывает отображаемый элемент, вызывая SetState для установки флага sfVisible в поле State. См. также: TView.SetState ShowCursor procedure ShowCursor; Включает аппаратный курсор, устанавливая sfCursorVis. Заметим, что по умолчанию курсор невидим. См. также: sfCursorVis, TView.HideCursor SizeLimits procedure SizeLimits(var Min, Max: TPoint); virtual; Переопределяемость: иногда используется. Возвращает, в переменных Min и Max, минимальное и мак- симальное значения, которые может принимать поле Size. Locate не позволит отображаемому элементу выходить за эти пределы. SizeLimits, установленная по умолчанию, возвращает в Min (0, 0), а в MaxOwner^.Size. См. также: TView.Size Store procedure Store(var S: TStream); Переопределяемость: часть используется. Сохраняет отображаемый элемент в потоке S. Размер дан- ных, записываемых в поток, должен точно соответствовать размеру данных, читаемых из потока конструктором Load отоб- ражаемого элемента. Если отображаемый элемент содержит ука- затель на равнозначные отображаемые элементы, то для записи этих указателей Store должен использовать PutPeerViewPtr. Переопределенный метод Store должен всегда вызывать метод Store порождающего объекта. По умолчанию TView.Store записывает в поток все поля, кроме Owner и Next. См. также: TView.Load, TStream.Get, TStream.Put TopView function TopView: PView; Возвращает указатель на текущий режимный отображаемый элемент. Valid function Valid(Commands: Word): Boolean; virtual; Переопределяемость: иногда используется. Этот метод используется для проверки правильности отображаемого элемента после его создания (с использованием методов Init или Load) или в момент, когда заканчивается режимное состояние (при вызове EndModal). Значение параметра Command, равное cmValid (ноль), указывает на то, что отображаемый элемент должен проверять результат своего создания: Valid(cmValid) должен возвращать значение True в случае, если отображаемый элемент был ус- пешно создан и готов к использованию. В противном случае возвращается False. Любое другое (отличное от нуля) значение параметра Command указывает на то, что текущее режимное состояние (такое, как режимное диалоговое окно) должно завершаться с результирующим значением Command. В этом случае Valid долж- на проверять правильность отображаемого элемента. Наиболее распространенная команда проверки правильности - это cmClose, указывающая на то, что окно будет закрыто. Если у отображаемого элемента установлен флаг ofValidate, то перед тем, как отображаемый элемент потеряет фокус ввода, вызывается Valid с командой cmReleaseFocus. Если Valid возвращает False, то отображаемый элемент не от- дает фокус. Valid должна сообщить пользователю о том, что отобра- жаемый элемент является неправильным, например, с помощью программы MessageBox из модуля MsgBox, выдавая сообщение об ошибке. По умолчанию TView.Valid просто возвращает True. См. также: TGroup.Valid, TDialog.Valid, TProgram.ValidView WriteBuf procedure TView.WriteBuf(X, Y, W, H: Integer; var Buf); Записывает буфер на экран, начиная с координат (X, Y) и заполняет область шириной W и высотой H. Должен использо- ваться только в методах Draw. Обычно параметр Buf имеет тип ТDrawBuffer, но он может быть любым массивом слов, в кото- ром каждое слово содержит символ в младшем байте и атрибут в старшем байте. См. также: TView.Draw, тип TDrawBuffer WriteChar procedure TView.WriteChar(X, Y: Integer;Ch: Char; Color: Byte; Count: Integer); Начиная с точки (X, Y) записывает Count копий символа Ch цветом, определенным элементом с номером Color, в палит- ре отображаемого элемента. Должен использоваться только в методах Draw. См. также: TView.Draw WriteLine procedure TView.WriteLine(X, Y, W, H: Integer; var Buf); Выводит строку, содержащуюся в буфере Buf, на экран, начиная с точки (X, Y) и внутри прямоугольника, определен- ного шириной W и высотой H. Если H больше 1, то строка бу- дет повторяться Н раз. Должен использоваться только в мето- де Draw. Параметр Buf обычно имеет тип TDrawBuffer, но мо- жет быть любым массивом слов, в котором каждое слово содер- жит символ в младшем байте и атрибут - в старшем байте. См. также: TView.Draw WriteStr procedure TView.WriteStr(X, Y: Integer; Str: String; Color: Byte); Записывает строку Str цветом элемента с номером Color в палитре отображаемого элемента, начиная с точки (X, Y). Должен использоваться только в методе Draw. См. также: TView.Draw ----------------------------------------------------------- Тип TVTransfer Validate ----------------------------------------------------------- Описание: TVTransfer = (vtDataSize, vtSetData, vtGetData); Функция: Объекты определителя допустимости используют параметры типа TVTransfer в методах Transfer для управления передачей данных при установке или чтении значения связан- ной строки ввода. См. также: TValidator.Transfer ----------------------------------------------------------- Тип TWildStr StdDlg ----------------------------------------------------------- Описание: TWildStr = PathStr; Функция: TWildStr идентичен типу PathDir, определенно- му в модуле Dos. Он используется в стандартных диалоговых окнах для передачи шаблонов имен файлов. ----------------------------------------------------------- TWindow Views ----------------------------------------------------------- Объект TWindow- это специализированная группа, которая обычно владеет объектом TFrame, внутренним объектом TScroller и одним или двумя объектами TScrollBar. Эти до- полнительные элементы придают объекту TWindow дополнитель- ную наглядность. Объект TFrame задает обычную рамку, разме- щает необязательный заголовок и номер, а также функциональ- ные пиктограммы (закрытия, распахивания, перемещения). Объ- екты TWindow имеют встроенные возможности перемещения и масштабирования с помощью "мыши" и клавиатуры. Они могут распахиваться и закрываться отметкой "мышью" соответствую- щих пиктограмм. Они также "знают" как работать с полосами прокрутки и элементами прокрутки. Окна с номерами от 1 до 9 могут выбираться клавишами Alt-n (n от 1 до 9). Поля ----------------------------------------------------------- Flags (чтение/запись) Flags: Byte; Поле Flags содержит комбинацию следующих бит: Ъ TWindow.Flags ї старший бит младший бит ЙНСНСНСНСНСНСНСН» ИСПНПНПСПСПСПСПСј АДДВДДЩ і і і АД wfMove = $01 і і і АДДД wfGrow = $02 Не определеноі АДДДДД wfClose = $04 АДДДДДДД wfZoom = $08 Описание флагов окна см. в разделе "Константы флагов окна wfXXXX" настоящей главы. Frame (только для чтения) Frame: PFrame; Frame- это указатель на объект TFrame, связанный с ок- ном. См. также: TWindow.InitFrame Number (чтение/запись) Number: Integer; Номер этого окна. Если TWindow.Number находится в диа- пазоне 1 - 9, то он будет появляться в заголовке рамки, и окно может быть выбрано клавишами Alt-n (n от 1 до 9). Palette (чтение/запись) Palette: Integer; Определяет, какая палитра окна будет использоваться: wpBlueWindow, wpCyanWindow, wpGrayWindow. По умолчанию вы- бирается палитра wpBlueWindow. См. также: TWindow.GetPalette, константы wpXXXX Title (чтение/запись) Title: RString; Строка символов, определяющая заголовок, который появ- ляется в рамке. ZoomRect (только для чтения) ZoomRect: TRect; Нормальные границы окна (без учета "распахивания"). Методы ----------------------------------------------------------- Init constructor Init(var Bounds: TRect; ATitle: TTitleStr; ANumber: Integer); Создает отображаемый элемент окна с границами, пере- данными в Bounds, вызывая конструктор Init, унаследованный от TGroup. Устанавливает State так, чтобы она включала sfShadow. Устанавливает Options равным (ofSelectable + ofTopSelect). Устанавливает GrowMode равным gfGrowAll + gfGrowRel. Устанавливает Flags равным (wfMove + wfGrow + wfClose + wfZoom). Устанавливает поле Title равным NewStr(ATitle), поле Number равным ANumber. Вызывает InitFrame, и если поле Frame не равно nil, вставляет его в группу окна. Наконец, устанавливает ZoomRect равным Bounds. См. также: TFrame.InitFrame Load constructor Load(var S: TStream); Создает и загружает окно из потока S, вызывая сначала конструктор Load, унаследованный от TGroup, а затем считы- вая дополнительные поля, введенные TWindow. См. также: TGroup.Load Done destructor Done; virtual; Переопределяемость: иногда используется. Освобождает память окон и подэлементов. Close procedure Close; virtual; Переопределяемость: используется редко. Вызывает метод окна Valid со значением Command, равным cmClose, и если Valid возвращает True, закрывает окно, вы- зывая метод Done. GetPalette function GetPalette: PPalette; virtual; Переопределяемость: иногда используется. Возвращает указатель на палитру, заданную индексом па- литры в поле Palette. В таблице 19.43 показаны палитры, возвращаемые для различных значений Palette. Таблица 19.43 Палитры окна, возвращаемые в зависимости от Palette ----------------------------------------------------------- Поле Palette Возвращаемая палитра ----------------------------------------------------------- wpBlueWindow CBlueWindow wpCyanWindow CCyanWindow wpGrayWindow CGrayWindow ----------------------------------------------------------- См. также: TWindowPalette GetTitle function GetTitle(MaxSize: Integer): TTitleStr; virtual; Переопределяемость: переопределяется редко. Должен возвращать строку заголовка окна. Если строка заголовка больше, чем MaxSize символов, то метод GetTitle должен пытаться укоротить ее, иначе она будет отсекаться отбрасыванием текста сверх MaxSize символов. Метод TFrame.Draw вызывает Owner^.GetTitle для получения строки текста, отображаемой в рамке. По умолчанию GetWindow.Title возвращает строку Title^ или пустую строку, если поле Title равно nil. См. также: TWindow.Title, TFrame.Draw HandleEvent procedure HandleEvent(var Event: TEvent);virtual; Переопределяемость: часто используется. Обрабатывает большую часть событий, вызывая сначала метод HandleEvent, унаследованный от TGroup, а затем обра- батывает специфические для TWindow события следующим обра- зом: События evCommand обрабатываются, если поле TWindow.Flags разрешает эту операцию: -cmResize (переместить или изменить размер окна, с по- мощью метода TView.DrawView) -cmClose (закрыть окно, используя метод TWindow.Close) -cmZoom (распахнуть окно, используя метод TWindow.Zoom). События evKeyDown со значением KeyCode, равным kbTab или kbShiftTab обрабатываются, выбирая следующий или преды- дущий выбираемый подэлемент (если он существует). Событие evBroadcast со значением Command, равным cmSelectWindowNum, вызывает выбор окна, если поле Event.InfoInt равно TWindow.Number. См. также: TGroup.HandleEvent, константы wfXXXX InitFrame procedure InitFrame; virtual; Переопределяемость: используется редко. Создает объект TFrame для окна и сохраняет указатель на эту рамку в поле TWindow.Frame. InitFrame вызывается из TWindow.Init, и никогда не должен вызываться напрямую. InitFrame может быть переопределен для создания объекта рамки, отличного от стандартной. См. также: TWindow.Init SetState procedure SetState(AState: Word; Enable: Boolean); virtual; Переопределяемость: используется редко. Вначале вызывает метод SetState, унаследованный от TGroup. Затем, если AState равно sfSelected, активизирует или деактивизирует окно и все его подэлементы, используя вызов SetState(sfActive, Enable) и вызов TView.EnableCommands или TView.DisableCommands для cmNext, cmPrev, cmResize, cmClose и cmZoom. См. также: TGroup.SetState, EnableCommands, DisableCommands SizeLimits procedure SizeLimits(var Min, Max: TPoint); virtual; Переопределяемость: переопределяется редко. Вызывает сначала метод SizeLimits, унаследованный от TView, а затем устанавливает Min равным MinWinSize. См. также: TView.SizeLimits, переменную MinVinSize StandardScrollBar function StandardScrollBar(AOptions: Word): PScrollBar; Создает, вставляет и возвращает указатель на "стан- дартную" полосу прокрутки для окна. "Стандартность" означа- ет тот факт, что полоса прокрутки вставляется в рамку окна, не закрывая углов или пиктограмм изменения размеров. Параметр AOptions может быть либо равен sbHorizontal для создания горизонтальной полосы прокрутки внизу окна, либо иметь значение sbVertical для создания вертикальной полосы прокрутки в правой стороне окна, либо может быть скомбинирован с sbHandleKeyboard, чтобы разрешить полосе прокрутки откликаться на клавиши управления курсором, а не только на кнопки "мыши". См. также: константы полосы прокрутки sbXXXX Store procedure TWindow.Store(var S: TStream); Сохраняет окно в потоке S, вызывая сначала метод Store, унаследованный от TGroup, а затем записывая дополни- тельные поля, введенные TWindow. См. также: TGroup.Store Zoom procedure TWindow.Zoom; virtual; Переопределяемость: переопределяется редко. Вызывает сначала метод SizeLimits, унаследованный от TView, а затем устанавливает Min равным MinWinSize. См. также: TView.SizeLimits, переменную MinVinSize StandardScrollBar function StandardScrollBar(AOptions: Word): PScrollBar; Создает, вставляет и возвращает указатель на "стан- дартную" полосу прокрутки для окна. "Стандартность" означа- ет тот факт, что полоса прокрутки вставляется в рамку окна, не закрывая углов или пиктограмм изменения размеров. Параметр AOptions может быть либо равен sbHorizontal для создания горизонтальной полосы прокрутки внизу окна, либо иметь значение sbVertical для создания вертикальной полосы прокрутки в правой стороне окна, либо может быть скомбинирован с sbHandleKeyboard, чтобы разрешить полосе прокрутки откликаться на клавиши управления курсором, а не только на кнопки "мыши". См. также: константы полосы прокрутки sbXXXX Store procedure TWindow.Store(var S: TStream); Сохраняет окно в потоке S, вызывая сначала метод Store, унаследованный от TGroup, а затем записывая дополни- тельные поля, введенные TWindow. См. также: TGroup.Store Zoom procedure TWindow.Zoom; virtual; Переопределяемость: используется редко. Распахивает окно. Этот метод обычно вызывается в ответ на команду cmZoom (генерируемую при отметке мышью пиктог- раммы распахивания окна). Zoom принимает во внимание отно- сительные размеры окна и его владельца, а также значение ZoomRect. См. также: cmZoom, ZoomRect Палитра ----------------------------------------------------------- Объекты окна используют по умолчанию палитры CBlueWindow (для текстовых окон), CCyanWindow (для окон со- общений) и CGrayWindow (для диалоговых окон). 1 2 3 4 5 6 7 8 ЙНННСНННСНННСНННСНННСНННСНННСННН» CGrayWindow є 24і 25і 26і 27і 28і 29і 30і 31є МНННПНННПНННПНННПНННПНННПНННПННН№ МНННСНННСНННСНННСНННСНННСНННСННН№ CCyanWindow є 16і 17і 18і 19і 20і 21і 22і 23є МНННПНННПНННПНННПНННПНННПНННПННН№ МНННСНННСНННСНННСНННСНННСНННСННН№ CBlueWindow є 8 і 9 і 10і 11і 12і 13і 14і 15є ИНСНПНСНПНСНПНСНПНСНПНСНПНСНПНСНј і і і і і і і і Пассивная ДДДДДЩ і і і і і і АЗарезервировано рамка і і і і і і Активная рамка ДДДДЩ і і і і АДД Выделенный текст і і і і прокрутки Пиктограмма ДДДЩ і і АДДДДДД Нормальный текст рамки і і элемента прокрутки Страница полосы ДДДДДДДДДДДЩ АДДДДДДДДДДД Зарезервировано прокрутки ----------------------------------------------------------- Тип TWordArray Objects ----------------------------------------------------------- Описание: TWordArray = array[0..16383] of Word; Функция: Тип массива слов для общего использования. ----------------------------------------------------------- Константа vmtHeaderSize Objects ----------------------------------------------------------- Описание: vmtHeaderSize = 8; Функция: Используется внутри потоков, наборов и отоб- ражаемых элементов в качестве смещения. ----------------------------------------------------------- Константы voXXXX Validate ----------------------------------------------------------- Функция: Константы, начинающиеся с vo, представляют биты в битовом поле Options объекта определителя допусти- мости. Значения: Options определителя допустимости определены следующим образом: Рис. 19.15 Флаги опций определителя допустимости. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї старший бит младший бит ЙНСНСНСНСНСНСНСНСНСНСНСНСНСНСНСН» ИСПНПНПНПНПНПСПСПСПСПСПСПСПСПСПСј АДДДДВДДДДДДЩ і і і і і і і і АДДД voFill = $0001 і і і і і і і і АДДДДД voTransfer= $0002 Не определено АДБДБДБДБДБДБДДДДДДД voReserved= $0004 Таблица 19.44 Флаги опций определителя допустимости. ----------------------------------------------------------- Константа Значение Описание ----------------------------------------------------------- voFill $0001 Используется картинками допустимости для указания того, вводить ли буквенные символы по мере того,как по- льзователь вводит их. voTransfer $0002 Определитель допустимости обрабатывает передачу дан- ных для строки ввода. В настоящее время используется лишь определителями диапа- зонов допустимости. voReserved $0004 Биты в этой маски зарезерви- рованы фирмой Borland ----------------------------------------------------------- ----------------------------------------------------------- Константы vsXXXX Validate ----------------------------------------------------------- Функция: Объекты строк ввода используют vsOK для про- верки того, что связанные с ними объекты определителей до- пустимости созданы правильно. При вызове с параметром ко- манды cmValid метод Valid объекта строки ввода проверяет значение поля Status определителя допустимости. Если Status равен vsOK, то Valid строки ввода возвращает True, что ука- зывает на готовность объекта определителя допустимости к использованию. Единственная величина, определенная для Status и от- личная от vsOK, это vsSyntax, которая используется TPXPictureValidator для указания того, что он не смог ин- терпретировать строку картинки, переданную ему. При созда- нии собственных объектов определителя допустимости можно определять коды ошибок и передавать их в поле Status. Значения: Модуль Validate определяет две константы, используемые объектами определителя допустимости для сооб- щения об их состоянии: Таблица 19.45 Константы состояния определителя допус- тимости ----------------------------------------------------------- Константа Значение Описание ----------------------------------------------------------- vsOK 0 Определитель допустимости создан правильно vsSyntax 1 Ошибка в синтаксисе картинки допустимости ----------------------------------------------------------- ----------------------------------------------------------- Константы wfXXXX Views ----------------------------------------------------------- Функция: Эти мнемонические обозначения определяют биты в поле Flags объектов TWindow. Если биты установлены, то окно будет иметь соответствующие атрибуты: окно может пере- мещаться, изменять размер, закрываться или распахиваться. Значения: Флаги окна определены следующим образом: Ъ TWindow.Flags ї і і старший бит младший бит ЙНСНСНСНСНСНСНСН» ИСПНПНПСПСПСПСПСј АДДВДДЩ і і і АД wfMove = $01 і і і АДДД wfGrow = $02 Неопределеныі АДДДДД wfClose = $04 АДДДДДДД wfZoom = $08 Таблица 19.46. Константы флагов окна. ----------------------------------------------------------- Константа Значение Смысл ----------------------------------------------------------- wfMove $01 Окно можно перемещать wfGrow $02 Окно может изменять размеры и иметь в правом нижнем углу соответствующую пик- тограмму wfClose $04 Рамка окна имеет пиктограмму закрытия wfZoom $08 Рамка окна имеет пиктограмму распахива- ния ----------------------------------------------------------- Если отдельный бит установлен, то соответствующая воз- можность имеется, в противном случае, эта возможность от- сутствует. См. также: TWindows.Flags ----------------------------------------------------------- Функция WindowColorItems ColorSel ----------------------------------------------------------- Описание: function WindowColorItems (Palette: Word; const Next: PColorItem): PColorItem; Функция: Возвращает связанный список записей типа TColorItem для стандартных объектов окна. Для программ, позволяющих пользователю изменять цвета окна с помощью диа- логового окна изменения цветов, WindowColorItems упрощает процесс установки элементов цветов. ----------------------------------------------------------- Константa wnNoNumber Views ----------------------------------------------------------- Описание: wnNoNumber = 0; Функция: Если поле TWindow.Number объекта окна содер- жит эту константу, то это указывает на то, что окно не име- ет номера и не может выбираться с помощью комбинации клавиш Alt-номер. Если поле Number находится в интервале от 1 до 9, то в рамке отображается номер окна, и доступен выбор ок- на по клавише Alt-номер. См. также: TWindow.Number ----------------------------------------------------------- Переменная WordChars Editors ----------------------------------------------------------- Описание: WordChars: set of Char = ['0'..'9', 'A'..'Z', '_', 'a'..'z']; Функция: Объекты редактора используют WordChars для определения того, является ли символ частью слова. Такие функции, как перемещение курсора и поиск целых слов, должны знать, где слова начинаются и заканчиваются. ----------------------------------------------------------- Тип WordRec Objects ----------------------------------------------------------- Описание: WordRec = record Lo, Hi: Byte; end; Функция: Запись, позволяющая осуществлять доступ к младшему Lo и старшему Hi битам слова. См. также: LongRec ----------------------------------------------------------- Константы wpXXXX Views ----------------------------------------------------------- Функция: Эти константы определяют три стандартных цве- товых набора для окон. По умолчанию, объект TWindow имеет палитру wpBlueWindow. По умолчанию, объект TDialog имеет палитру wpGrayWindow. Значения: Turbo Vision определяет эти три стандартных палитры окна следующим образом: Таблица 19.47. Стандартные палитры окна. ----------------------------------------------------------- Константа Значение Назначение ----------------------------------------------------------- wpBlueWindow 0 Желтый текст на синем wpCuanWindow 1 Синий текст на голубом wpGrayWindow 2 Черный текст на сером ----------------------------------------------------------- См. также: TWindow.Palette, TWindow.GetPalette О г л а в л е н и е ГЛАВА 19. Справочник по системе Turbo Vision......... Процедура Abstract Objects.. Переменная Application App...... Переменная AppPalette App...... Константы apXXXX App...... Процедура AssignDevice TextView. Константы bfXXXX Dialogs.. Переменная ButtonCount Drivers.. Константы cdXXXX StdDlg... Константы cfXXXX Dialogs.. Переменная CheckSnow Drivers.. Процедура ClearHistory HistList. Процедура ClearScreen Drivers.. Переменная Clipboard Editors.. Константы cmXXXX..................................... Переменная ColorIndexes ColorSel. Функция ColorGroup ColorSel. Функция ColorItem ColorSel. Константы coXXXX Drivers.. Функция: CStrLen Drivers.. Переменная CtrlBreakHit Drivers.. Функция: CtrlToArrow Drivers.. Переменная CursorLines Drivers.. Функция: DefEditorDialog Editors.. Переменная DeskTop App...... Функция DesktopColorItems ColorSel. Функция DialogColorItems ColorSel. Процедура DisposeBuffer Memory... Процедура DisposeCache Memory... Процедура DisposeMenu Menus.... Процедура DisposeNode Outline.. Процедура DisposeStr Objects.. Константы dmXXXX Views.... Процедура DoneDosMem Memory... Процедура DoneEvents Drivers.. Процедура DoneHistory Drivers.. Процедура DoneMemory Memory... Процедура DoneSysError Drivers.. Процедура DoneVideo Drivers.. Переменная DoubleDelay Drivers.. Константы dpXXXX Dialogs.. Переменная EditorDialog Editors.. Переменная EditorFlags Editors.. Константы edXXXX Editors.. Константы efXXXX Editors.. Переменная EmsCurHandle Objects.. Переменная EmsCurPage Objects.. Переменная ErrorAttr Views.... Константы evXXXX Drivers.. Константы fdXXXX StdDlg... Переменная FindStr Editors.. Тип FNameStr Objects.. Переменная FocusedEvents Views.... Процедура FormatStr Drivers.. Процедура FreeBufMem Memory... Функция: GetAltChar Drivers.. Функция: GetAltCode Drivers.. Функция: GetBufferSize Memory... Процедура GetBufMem Memory... Процедура GetKeyEvent Drivers.. Процедура GetMouseEvent Drivers.. Константы gfXXXX Views.... Константы hcXXXX App...... Константы hcXXXX Views.... Процедура HideMouse Drivers.. Переменная HiResScreen Drivers.. Процедура HistoryAdd HistList. Переменная HistoryBlock HistList. Функция HistoryCount HistList. Переменная HistorySize HistList. Функция HistoryStr HistList. Переменная HistoryUsed HistList. Процедура InitDosMem Memory... Процедура InitEvents Drivers.. Процедура InitHistory HistList. Процедура InitMemory Memory... Процедура InitSysError Drivers.. Процедура InitVideo Drivers.. Функция InputBox MsgBox... Функция InputBoxRect MsgBox... Константы kbXXXX Drivers.. Процедура LoadHistory HistList. Процедура LoadIndexes ColorSel. Функция: LongDiv Objects.. Функция: LongMul Objects.. Тип LongRec Objects.. Функция: LowMemory Memory... Переменная LowMemSize Memory... Переменная MaxBufMem Memory... Переменная MaxCollectionSize Objects.. Переменная MaxHeapSize Memory... Переменная MaxLineLength Editors.. Константа MaxViewWidth Views.... Константы mbXXXX Drivers.. Функция: MemAlloc Memory... Функция: MemAllocSeg Memory... Переменная MenuBar App...... Функция MenuColorItems ColorSel. Функция: Message Views.... Функция: MessageBox MsgBox... Функция: MessageBoxRect MsgBox... Константы mfXXXX MsgBox... Переменная MinWinSize Views.... Переменная MouseButtons Drivers.. Переменная MouseEvents Drivers.. Переменная MouseIntFlag Drivers.. Переменная MouseReverse Drivers.. Переменная MouseWhere Drivers.. Процедура MoveBuf Objects.. Процедура MoveChar Drivers.. Процедура MoveCStr Drivers.. Процедура MoveStr Drivers.. Процедура NewBuffer Memory... Процедура NewCache Memory... Функция: NewItem Menus.... Функция: NewLine Menus.... Функция: NewMenu Menus.... Функция: NewNode OutLine.. Функция: NewSItem Dialogs.. Функция: NewStatusDef Menus.... Функция: NewStatusKey Menus.... Функция: NewStr Objects.. Функция: NewSubMenu Menus.... Константы ofXXXX Views.... Константы ovXXXX Outline.. Переменная PositionalEvents Views.... Процедура PrintStr Drivers.. Тип PString Objects.. Тип PtrRec Objects.. Процедура RegisterColorSel ColorSel. Процедура RegisterDialogs Dialogs.. Процедура RegisterEditors Editors.. Процедура RegisterStdDlg StdDlg... Процедура RegisterType Objects.. Процедура RegisterValidate Validate. Переменная RepeatDelay Drivers.. Переменная ReplaceStr Editors.. Переменная SaveCtrlBreak Drivers.. Константы sbXXXX Views.... Переменная ScreenBuffer Drivers.. Переменная ScreenHeight Drivers.. Переменная ScreenMode Drivers.. Переменная ScreenWidth Drivers.. Тип SelectMode Views.... Функция SetBufferSize Memory... Процедура SetMemTop Memory... Процедура SetVideoMode Drivers.. Константы sfXXXX Views.... Переменная ShadowAttr Views.... Переменная ShadowSize Views.... Переменная ShowMarkers Drivers.. Процедура ShowMouse Drivers.. Константы smXXXX Drivers.. Переменная SpecialChars Views.... Константы stXXXX Objects.. Переменная StartupMode Drivers.. Переменная StatusLine App...... Функция StdEditMenuItems App...... Функция StdEditorDialog Editors.. Функция StdFileMenuItems App..... Функция StdStatusKeys App..... Функция StdWindowMenuItems App. Переменная StreamError Objects....................... Процедура StoreHistory HistList. Процедура StoreIndexes ColorSel. Переменная SysColorAttr Drivers.. Переменная SysErrActive Drivers.. Переменная SysErrorFunc Drivers.. Переменная SysMonoAttr Drivers.. Функция: SystemError Drivers.. TApplication App...... Методы............................................... TBackground App.... Поля................................................. Методы............................................... Палитра.............................................. TBufStream Objects. Поля................................................. Методы............................................... TButton Dialogs.. Поля................................................. Методы............................................... Палитра.............................................. Тип TByteArray Objects.. Тип TCharSet Objects.. Объекты TChDirDialog StdDialog Поля................................................. Методы............................................... TCheckBoxes Dialogs.. Методы............................................... Палитра.............................................. TCluster Dialogs.. Поля................................................. Методы............................................... Палитра.............................................. TCollection Objects.. Поля................................................. Методы............................................... TColorDialog ColorSel. Поля................................................. Методы............................................... TColorDisplay ColorSel. Тип TColorGroup ColorSel. Объект TColorGroupList ColorSel. Тип TColorIndex ColorSel. Тип TColorItem ColorSel. Объект TColorItemList ColorSel. Тип TColorSel ColorSel. Объект TColorSelector ColorSel. Тип TCommandSet Views.... TDeskTop App... Поля Методы.............................................. Методы............................................... TDialog Dialogs.. Методы............................................... Палитра.............................................. Объект TDirCollection StdDlg... Тип TDirEntry StdDlg... Объект TDirListBox StdDlg... TDosStream Objects. Поля................................................. Методы............................................... Тип TDrawBuffer Views.... Тип TEditBuffer Editors.. Объект TEditor Editors.. Поля................................................. Методы............................................... Палитра.............................................. Тип TEditorDialog Editors.. Объект TEditWindow Editors.. Поле................................................. Методы............................................... TEmsStream Objects.. Поля................................................. Методы............................................... Тип TEvent Drivers.. Объект TFileCollection StdDlg... Объект TFileDialog StdDlg... Поля................................................. Методы............................................... TFileEditor Editors.. Поле................................................. Методы............................................... TFileInfoPane StdDlg... TFileInputLine StdDlg... TFileList StdDlg... TFilterValidator Validate. Поле................................................. Методы............................................... Тип TFindDialogRec Editors.. TFrame Views.. Методы............................................... Палитра.............................................. TGroup Views.. Поля................................................. Методы............................................... Метод Init........................................... Load................................................. Done................................................. Awaken............................................... ChangeBounds......................................... DataSize............................................. Delete............................................... Draw................................................. EndModal............................................. EventError........................................... ExecView............................................. Execute.............................................. First................................................ FirstThat............................................ FocusNext............................................ ForEach.............................................. GetData.............................................. GetHelpCtx........................................... GetSubViewPtr........................................ HandleEvent.......................................... Insert............................................... InsertBefore......................................... Lock................................................. PutSubViewPtr........................................ Redraw............................................... SelectNext........................................... SetData.............................................. SetState............................................. Store................................................ Unlock............................................... Valid................................................ THistory Dialogs. Поля................................................. Методы............................................... Палитра........................................ THistoryViewer Dialogs. THistoryWindow Dialogs. TIndicator Editors.. Поля................................................. Методы............................................... Палитра.............................................. TInputLine Dialogs. Поля................................................. Методы............................................... Палитра.............................................. Тип TItemList Objects.. TLabel Dialogs. Поля................................................. Методы............................................... Палитра.............................................. TListBox Dialogs.. Поле................................................. Методы............................................... Палитра.............................................. TListViewer Views. Поля................................................. Методы............................................... Палитра.............................................. TLookupValidator Validate. Методы............................................... Объект TMemo Editors.. Методы............................................... Палитра.............................................. Тип TMemoData Editors.. Тип TMenu Menus.... TMenuBar Menu... Методы............................................... Палитра.............................................. TMenuBox Menu. Методы............................................... Палитра.............................................. Тип TMenuItem Menus.... Тип TMenuStr Menus.... TMenuView Menu. Поля................................................. Методы............................................... Палитра.............................................. Объект TMonoSelector ColorSel. TMultiCheckBoxes Dialogs.. Поля................................................. Методы............................................... Тип TNode Outline.. TObject Objects. Методы............................................... TOutLine OutLine.. Поле................................................. Методы............................................... TOutlineViewer Outline.. Поле................................................. Методы............................................... Палитра.............................................. Тип TPalette Views.... TParamText Dialogs. Поля................................................. Методы............................................... Палитра.............................................. TPoint Objects.. Поля................................................. Тип TPicResult Validate. TProgram App.. Методы............................................... Палитры.............................................. TPXPictureValidator Validate. Поле................................................. Методы............................................... TRadioButtons Dialogs. Методы............................................... Палитра.............................................. TRangeValidator Validate. Поля................................................. Методы............................................... TRect Objects.. Поля................................................. Методы............................................... Тип TReplaceDialogRec Editors.. TResourceCollection Objects. TResourceFile Objects. Поля................................................. Методы............................................... TScrollBar Views. Поля................................................. Методы............................................... Палитра.............................................. Тип TScrollChars Views.... TScroller Views. Поля................................................. Методы............................................... Палитра.............................................. Тип SearchRec StdDlg... Тип TSItem Dialogs.. TSortedCollection Objects. Поле................................................. Методы............................................... Объект TSortedListBox StdDlg... Поля................................................. Методы............................................... TStaticText Dialogs. Поля................................................. Методы............................................... Палитра.............................................. Тип TStatusDef Menus.... Тип TStatusItem Menus.... TStatusLine Menus.. Поля................................................. Методы............................................... Палитра.............................................. TStream Objects Поля................................................. Методы............................................... Тип TStreamRec Objects.. Тип TStrIndex Objects.. Тип TStrIndexRec Objects.. TStringCollection Objects. Методы............................................... TStringList Objects. Методы............................................... StrListMaker Objects.. Методы............................................... Тип TSysErrorFunc Drivers.. TStringLookupValidator Validate. Поле................................................. Методы............................................... TTerminal TextView. Поля................................................. Методы............................................... Палитра.............................................. Тип TTerminalBuffer TextView. TTextDevice TextView Методы............................................... Палитра.............................................. Тип TTitleStr Views.... TValidator Validate. Поля................................................. Методы............................................... Тип TVideoBuf Views.... TView Views. Поля................................................. Методы............................................... Load................................................. Done................................................. Awaken............................................... BlоckCursor.......................................... CalcBounds........................................... ChangeBounds......................................... ClearEvent........................................... CommandEnabled....................................... DataSize............................................. DisableCommands...................................... DragView............................................. Draw................................................. DrawView............................................. EnableCommands....................................... EndModal............................................. EventAvail........................................... Execute.............................................. Exposed.............................................. Focus................................................ GetBounds............................................ GetClipRect.......................................... GetColor............................................. GetCommands.......................................... GetData.............................................. GetEvent............................................. GetExtent............................................ GetHelpCtx........................................... GetPalette........................................... GetPeerViewPtr....................................... GetState............................................. GrowTo............................................... HandleEvent.......................................... Hide................................................. HideCursor........................................... KeyEvent............................................. Locate............................................... MakeFirst............................................ MakeGlobal........................................... MakeLocal............................................ MouseEvent........................................... MouseInView.......................................... MoveTo............................................... NextView............................................. NormalCursor......................................... Prev................................................. PrevView............................................. PutEvent............................................. PutInFrontOf......................................... PutPeerViewPtr....................................... Select............................................... SetBounds............................................ SetCmdState.......................................... SetCommands.......................................... SetCursor............................................ SetData.............................................. SetState............................................. Show................................................. ShowCursor........................................... SizeLimits........................................... Store................................................ TopView.............................................. Valid................................................ WriteBuf............................................. WriteChar............................................ WriteLine............................................ WriteStr............................................. Тип TVTransfer Validate. Тип TWildStr StdDlg... TWindow Views.. Поля................................................. Методы............................................... Палитра.............................................. Тип TWordArray Objects.. Константа vmtHeaderSize Objects.. Константы voXXXX Validate. Константы vsXXXX Validate. Константы wfXXXX Views.... Функция WindowColorItems ColorSel. Константa wnNoNumber Views.... Переменная WordChars Editors.. Тип WordRec Objects.. Константы wpXXXX Views.... |