|
|
---|
    TValidator определяет объект проверки допустимости абстрактных данных. На самом деле вам никогда не потребуется создавать экземпляры TValidator, но он обеспечивает абстрактные функции для других объектов проверки допустимости.
    Options - это поле с побитовым отображением, используемое в
различных потомках TValidator. По умолчанию TValidator.Init
очищает все биты в Options.
    См. также: константы voXXXX.
    Status указывает состояние объекта проверки допустимости.
Если значение Status равно vsOK, то объект проверки допустимости
строится корректно. Любое значение, отличное от vsOK, указывает,
что произошла ошибка.
    См. также: TInputLine.Valid, константы ValidatorOK.
    Ниже перечисляются методы, содержащиеся в данном объекте.
    Строит абстрактный объект проверки допустимости, вызывая
сначала конструктор Init, наследуемый из TObject, а затем
устанавливая поля Options и Status в значение 0.
    См. также: TObject.Init.
    Строит объект проверки допустимости, вызывая конструктор
Init, наследуемый из TObject, а затем считывает из потока S слово
Options.
    См. также: TObject.Init.
    Error - это абстрактный метод, вызываемый Valid при
обнаружении ввода пользователем недопустимой информации. По умолчанию
TValidator.Error ничего не делает, но наследующие типы могут
переопределять Error для обеспечения обратной связи с
пользователем.
    По умолчанию TValidator.IsValid возвращает True. Наследующие
типы проверки допустимости могут переопределять IsValid для
проверки данных в полной строке ввода. Если строка ввода имеет
соответствующий объект проверки допустимости, то его метод Valid
вызывает метод Valid объекта проверки допустимости, который, в свою
очередь, вызывает IsValid для определения допустимости строки
ввода IsValid.
    См. также: TInputLine.Valid, TValidator.Valid.
    Если строка ввода имеет соответствующий объект проверки
допустимости, то IsValidInput вызывается после обработки каждого
клавиатурного события. Это дает таким средствам проверки
допустимости как фильтры возможность перехватывать ошибки перед тем,
как пользователь заполнит весь элемент на экране.
    По умолчанию TValidator.IsInput возвращает значение True.
Наследующие объекты проверки допустимости данных могут
переопределять IsValidInput для проверки допустимости набираемых
пользователем данных, возвращая True, если S содержит допустимые
данные, и False в противном случае.
    S - это текущая строка ввода. SupressFill определяет, будет
ли объект проверки допустимости автоматически форматировать
строку перед ее проверкой. Если SupressFill имеет значение True, то
проверка допустимости выполняется для немодифицированной строки
S. Если SupressFill имеет значение False, то перед проверкой
допустимости данных средство проверки допустимости должно заполнить
или дополнить строку. Из стандартных объектов проверки
допустимости SupressFill проверяет только TPXPictureValidator.
    Так как S - это параметр-переменная, IsValidInput может
модифицировать содержимое строк ввода, например, преобразовывать
символы в верхний регистр или вставлять литеральные символы из
трафарета формата. Однако, метод IsValidInput не должен удалять
из строки недопустимых символов. Возвращая значение False,
IsValidInput указывает, что в строке ввода следует стереть
неверные символы.
    Записывает объект проверки допустимости в поток S, записывая
значение поля Options.
    Позволяет объекту проверки допустимости на основе
установленных значений считывать соответствующие значения строки ввода,
которые наиболее полезны в объектах проверки допустимости,
проверяющих нестроковые данные (такие как числовые значения).
Например, TRAngeValidator использует Transfer вместо передачи целой
строки для чтения и записи значений типа Longint в запись
данных.
    По умолчанию строки ввода с проверкой допустимости дают
сначала объекту проверки допустимости возможность ответить на
DataSize, GetData и SetData, вызывая метод Transfer объекта
проверки допустимости. Если метод Transfer возвращает что-либо,
отличное от 0, это указывает строке ввода, что соответствующая
передача обработана. Используемым по умолчанию действием
TValidator.Transfer является возврат значения 0 (в любом случае).
Если вы хотите, чтобы объект проверки допустимости пересылал
данные, то нужно переопределить метод Transfer.
    Первые два параметра Transfer - это соответствующая
текстовая строка ввода и запись GetData или SetData. В зависимости от
значения Flag, Transfer может устанавливать S из буфера Buffer
или считывать в буфер Buffer данные из S. Возвращаемое значение
всегда равно число переданных данных.
    Если Flag имеет значение vtSetData, Transfer считывает
буфера Buffer в S соответствующее число байт, преобразуя их в нужную
строковую форму и возвращая число считанных байт. Если Flag равен
vtGetData, Transfer устанавливает значения в Buffer, беря
соответствующее число байт и преобразуя их в нужную строковую форму
S, возвращая размер данных. Если Flag равен vtDataSize, Transfer
просто возвращает размер данных.
    См. также: TInputLine.DataSize, TInputLine.GetData,
TInputLine.SetData.
    Возвращает True, если IsValid(S) возвращает значение True. В
противном случае вызывает Error и возвращает значение False.
Метод Valid объекта проверки допустимости вызывается методом Valid
соответствующей строки ввода.
    Строки ввода и связанные с ними объекты проверки
допустимости вызывают метод Valid объекта проверки допустимости при двух
условиях: когда установлена строка ввода или ее параметр
ofValidarte (в этом случае при вызове Valid теряется фокус
ввода), либо диалоговый блок, содержащий строку ввода, вызывает
метод Valid для всех своих управляющих элементов (обычно из-за
того, что пользователь требует закрыть диалоговый блок или ввести
запись с экрана).
    См. также: TInputLine.Valid, TValidator.Error,
TValidator.IsValid.
Поля
Options: Word;
Status
Status: Word;
Методы
Init
constructor Init;
Load
constrictor Load(var S: Stream);
Error
procedure Error; virtual;
IsValid
function IsValid(const S: string): Boolean; virtual;
IsValidInput
function IsValidInput(var S: string; SuppressFill: Boolean):
Boolean; virtual;
Store
procedure Store(var S: TStream);
Transfer
function Transfer(var S: String; Buffer: Pointer; Flag:
TVTransfer): Word; virtual;
Valid
function Valid(const S: string): Boolean;