Турбо Паскаль 6.0

       

TInputLine Dialogs


+-------------+ | TObject | +------+------+ +------+------+ | TView | +------+------+ +======+======+ | TInputLine | +=============+

Объект TInputLine обеспечивает редактор строк ввода. Он управляет вводом с клавиатуры и мышки и перемещением помеченных блоков в различных функциях редактирования строки (см. TInputLine.HandleEvent). Выбранный текст удаляется и заменяется первым введенным текстом. Если MaxLen больше размера по Х (Size.X), поддерживается горизонтальный скроллинг, который указывается правой и левой стрелками. Методы GetData и SetData предназначены для записи и чтения строк данных (через поле указателя Data) в данную запись. TInputLine.SetState упрощает перерисовку видимого элемента соответствующим цветом, когда состояние изменяется из или в sfActive и sfSelected. Строка ввода часто имеет ассоциированные с ним объекты TLabel и/или THistory. TInputLine можно расширить для обработки типов данных отличных от строк. Чтобы сделать это, Вы добавляете новые поля и перекрываете методы Init, Load, Store, Valid, DataSize, GetData и SetData. Например, чтобы определить строку ввода числа, Вы можете задать минимальное и максимальные допустимые значения, которые будут проверяться функцией Valid. Эти минимальные и максимальные поля будут загружаться и сохраняться в потоке методами Load и Store. Valid модифицируется для проверки того, что значение находится в допустимом диапазоне. DataSize модифицируется для включения размера диапазона новых полей (вероятно SizeOf(Longint) для каждого). В этом примере не обязательно добавлять поле для хранения числового значения. Оно может храниться как строковое значение (которое уже обрабатывается в TInputLine) и преобразовываться из строки в числовое значение и обратно методами GetData и SetData соответственно.

Поля

Data Data: PString; Чтение/Запись Указатель на строку, содержащую редактируемую информацию.

MaxLen MaxLen: Integer; Только чтение Максимальная длина, допустимая для строки, включая байт длины.

См. так же: TInputLine.DataSize


CurPos CurPos: Integer; Чтение/ Запись Индекс на точку вставки (т.е. на текущую позицию курсора).

См. так же: TInputLine.SelectAll FirstPos FirstPos: Integer; Чтение/Запись Индекс на первый отображаемый символ.

См. так же: TInputLine.SelectAll

SelStart SelStat: Integer; Только чтение Индекс на начало выбранной области (т.е. на первый символ отмеченного блока).

См. так же: TInputLine.SelectAll

SelEnd SelEnd: Integer; Только чтение Индекс на конец выбранной области (т.е. на последний символ отмеченного блока).



См. так же: TInputLine.SelectAll

Методы

Init constructor Init(var Bounds: TRect; AMaxLen: Integer); Создает прямоугольник ввода с заданными значениями, вызывая TInputLine.Init. State устанавливается в sfCursorVis, Options устанавливается в (ofSelectable + ofFirstClick), и MaxLen устанавливается в AMaxLen. Память распределяется и очищается под AMaxLen + 1 байт и поле Data устанавливается для указания этого распределения.

См. так же: TView.Init, TView.sfCursorVis, TView.ofSelectable, TView.ofFirstClick

Load constructor Load(var S: TStream); Создает и инициализирует объект TInputLine, вызывая TView. Load(S) для загрузки видимого элемента из потока, затем читает целочисленные поля, используя S.Read, распределяет MaxLen+1 байт через Data, вызывая GetMem. Наконец устанавливает байт длины строки и загружает данные из потока двумя дополнительными вызовами S.Read. Load используется совместно с TInputLine.Store для сохранения и восстановления объектов TInputLine из TStream. Перекрывайте этот метод, если Вы определили потомков, содержащих дополнительные поля.

См. так же: TView.Load, TInputLine.Store, TStream.Read

Done destructor Done; virtual; Перекрывается: Редко Освобождает память Data, затем вызывает TView.Done для разрушения объекта TInputLine.

См. так же: TView.Done

DataSize function DataSize: Word; virtual; Перекрывается: Иногда Возвращает размер записи для TInputLine.GetData и TInputLine.SetData. По умолчанию возвращается MaxLen+1. Перекройте этот метод, если Вы определили потомков для обработки других типов данных.



См. так же: TInputLine.GetData, TInputLine.SetData

Draw procedure Draw; virtual; Перекрывается: Редко Рисует прямоугольник ввода и его данные. Прямоугольник рисуется соответствующим цветом в зависимости от того, является ли он sfFocused или нет (т.е. находится ли в видимом элементе курсор или нет) и стрелки рисуются, если строка ввода превышает размер видимого элемента (в любом или в обоих направлениях). Любые выбранные (отмеченный блок) символы рисуются соответствующим цветом.

GetData procedure GetData(var Rec); virtual; Перекрывается: Иногда Записывает DataSize байт из строки Data^ в запись. Используется с TInputLine.SetData в ряде программ, например во временной памяти или при передаче строки ввода в другие видимые элементы. Перекройте этот метод, если Вы определяете потомка для обработки нестроковых типов данных. Используйте этот метод для преобразования Ваших типов данных в строку, редактируемую с помощью TInputLine.

См. так же: TInputLine.DataSize, TInputLine.SetData

GetPalette function GetPalette: PPalette; virtual; Перекрывается: Иногда Возвращает указатель на палитру по умолчанию CInputLine.

HandleEvent procedure HandleEvent(var Event: TEvent); virtual; Перекрывается: Иногда Вызывает TView.HandleEvent, которая обрабатывает все события от мышки и клавиатуры, если прямоугольник ввода выбран. Этот метод реализует стандартные функции редактирования. Функции редактирования включают: отметку блока мышкой; удаление блока, вставку или перекрытие элемента управления с автоматическим изменением формы курсора; автоматический и ручной скроллинг (зависит от относительных размеров строки Data и Size.X); ручной горизонтальный скроллинг через отметку мышкой на кнопках стрелок; ручное движение курсора с помощью стрелок Home и End; удаление символа и блока с помощью Del и Ctrl-G. Видимый элемент перерисовывается при необходимости и поля TInputLine соответственно изменяются.

См. так же: sfCursorIns, TView.HandleEvent, TIputLine.SelectAll

SelectAll procedure SelectAll(Enable: Boolean); Устанавливает CurPos, FirstPos и SelStart в 0. Если Enable установлен в True, SelEnd устанавливается в Length(Data^) выбирая таким образом всю строку ввода. Если Enable установлен в False, SelEnd устанавливается в 0 снимая таким образом выбор всей строки. Наконец, видимый элемент перерисовывается вызовом DrawView.



См. так же: TView.DrawView

SetData procedure SetData(var Rec); virtual; Перекрывается: Иногда По умолчанию читает DataSize байт из записи в строку Data^ и вызывает SelectAll(True) для установки CurPos, FirstPos и SelStart в 0; SelEnd устанавливается на последний символ Data^ и видимый элемент перерисовывается. Перекройте этот метод, если Вы определили потомка для обработки нестроковых типов данных. Используйте этот метод для преобразования из строки в Ваш тип данных после редактирования с помощью InputLine.

См. так же: TInputLine.DataSize, TInputLine.GetData, TView.DrawView

SetState procedure AetState(AState: Word; Enable: Boolean); virtual; Перекрывается: Редко Вызывается, когда прямоугольник ввода должен быть перерисован (например при изменении палитры) после изменения State. Вызов TView.SetState устанавливает или очищает поле State видимого элемента заданными битами AState. Затем, если AState - sfSelected или если AState - sfActive и прямоугольник ввода - sfSelected, то вызывается SelectAll(Enable).

См. так же: TView.SetState, TView.DrawView

Store procedure Store(var S: TStream); Сохраняет видимый элемент в потоке, вызывая TView.Store(S), затем сохраняет 5 целочисленных полей и строку Data вызовами S.Write. Используется совместно с TInputLine.Load для сохранения и чтения всего объекта TInputLine. Перекройте этот метод, если Вы определяете потомка, который содержит дополнительные поля.

См. так же: TView.Store, TInputLine.Load, TStream.Write

Палитра

Строки ввода используют палитру по умолчанию CInputLine для отображения в элементы с 19 по 21-й в палитре стандартного диалогового окна.

1 2 3 4 +====+====+====+====+ CInputLine | 19 | 19 | 20 | 21 | +==+=+==+=+==+=+==+=+ Пассивный -----+ | | +--- Стрелка Активный -----------+ +-------- Выбранный


Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий