TValidator (модуль Validate)


TObject
 
-Init-
Done
Free
TValidator
Options
Status
Init
Load
IsInvalid
IsValidInput
Store
Transfer
Valid

    TValidator определяет объект проверки допустимости абстрактных данных. На самом деле вам никогда не потребуется создавать экземпляры TValidator, но он обеспечивает абстрактные функции для других объектов проверки допустимости.

Поля


Options

     Options: Word;

    Options - это поле с побитовым отображением, используемое в различных потомках TValidator. По умолчанию TValidator.Init очищает все биты в Options.

    См. также: константы voXXXX.

Status


     Status: Word;

    Status указывает состояние объекта проверки допустимости. Если значение Status равно vsOK, то объект проверки допустимости строится корректно. Любое значение, отличное от vsOK, указывает, что произошла ошибка.

    См. также: TInputLine.Valid, константы ValidatorOK.

Методы


    Ниже перечисляются методы, содержащиеся в данном объекте.

Init


     constructor Init;

    Строит абстрактный объект проверки допустимости, вызывая сначала конструктор Init, наследуемый из TObject, а затем устанавливая поля Options и Status в значение 0.

    См. также: TObject.Init.

Load


     
     constrictor Load(var S: Stream);

    Строит объект проверки допустимости, вызывая конструктор Init, наследуемый из TObject, а затем считывает из потока S слово Options.

    См. также: TObject.Init.

Error


     
     procedure Error; virtual;

    Error - это абстрактный метод, вызываемый Valid при обнаружении ввода пользователем недопустимой информации. По умолчанию TValidator.Error ничего не делает, но наследующие типы могут переопределять Error для обеспечения обратной связи с пользователем.

IsValid


     
     function IsValid(const S: string): Boolean; virtual;

    По умолчанию TValidator.IsValid возвращает True. Наследующие типы проверки допустимости могут переопределять IsValid для проверки данных в полной строке ввода. Если строка ввода имеет соответствующий объект проверки допустимости, то его метод Valid вызывает метод Valid объекта проверки допустимости, который, в свою очередь, вызывает IsValid для определения допустимости строки ввода IsValid.

    См. также: TInputLine.Valid, TValidator.Valid.

IsValidInput


     
     function IsValidInput(var S: string; SuppressFill: Boolean):
                           Boolean; virtual;

    Если строка ввода имеет соответствующий объект проверки допустимости, то IsValidInput вызывается после обработки каждого клавиатурного события. Это дает таким средствам проверки допустимости как фильтры возможность перехватывать ошибки перед тем, как пользователь заполнит весь элемент на экране.

    По умолчанию TValidator.IsInput возвращает значение True. Наследующие объекты проверки допустимости данных могут переопределять IsValidInput для проверки допустимости набираемых пользователем данных, возвращая True, если S содержит допустимые данные, и False в противном случае.

    S - это текущая строка ввода. SupressFill определяет, будет ли объект проверки допустимости автоматически форматировать строку перед ее проверкой. Если SupressFill имеет значение True, то проверка допустимости выполняется для немодифицированной строки S. Если SupressFill имеет значение False, то перед проверкой допустимости данных средство проверки допустимости должно заполнить или дополнить строку. Из стандартных объектов проверки допустимости SupressFill проверяет только TPXPictureValidator.

    Так как S - это параметр-переменная, IsValidInput может модифицировать содержимое строк ввода, например, преобразовывать символы в верхний регистр или вставлять литеральные символы из трафарета формата. Однако, метод IsValidInput не должен удалять из строки недопустимых символов. Возвращая значение False, IsValidInput указывает, что в строке ввода следует стереть неверные символы.

Store


     procedure Store(var S: TStream);

    Записывает объект проверки допустимости в поток S, записывая значение поля Options.

Transfer


     
     function Transfer(var S: String; Buffer: Pointer; Flag:
                       TVTransfer): Word; virtual;

    Позволяет объекту проверки допустимости на основе установленных значений считывать соответствующие значения строки ввода, которые наиболее полезны в объектах проверки допустимости, проверяющих нестроковые данные (такие как числовые значения). Например, 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.

Valid


     function Valid(const S: string): Boolean;

    Возвращает True, если IsValid(S) возвращает значение True. В противном случае вызывает Error и возвращает значение False. Метод Valid объекта проверки допустимости вызывается методом Valid соответствующей строки ввода.

    Строки ввода и связанные с ними объекты проверки допустимости вызывают метод Valid объекта проверки допустимости при двух условиях: когда установлена строка ввода или ее параметр ofValidarte (в этом случае при вызове Valid теряется фокус ввода), либо диалоговый блок, содержащий строку ввода, вызывает метод Valid для всех своих управляющих элементов (обычно из-за того, что пользователь требует закрыть диалоговый блок или ввести запись с экрана).

    См. также: TInputLine.Valid, TValidator.Error, TValidator.IsValid.

Тип TVTransfer (модуль Validate)


     Описание: TVTransfer = (vtDataSize, vtSetData, vtGetData);

    Назначение: Объекты проверки допустимости используют параметры типа TVTransfer в своих методах Transfer для управления передачей данных при установке или считывании значения из соответствующей строки ввода.

    См. также: TValidator.Transfer.

Тип TWndClass (модуль WinTypes)


    Описание:

     TWndClass = record
        style: Word;
        lpfnWndProc: TFarProc;
        cbClsExtra: Integer;
        cbWndExtra: Integer;
        hInstance: THandle;
        hIcon: HIcon;
        hCursor: HCursor;
        hbrBackGround: HBrush;
        lpszMenuName: PChar;
        lpszClassName: PChar;
     end;

    Назначение: Запись TWndClass содержит атрибуты класса окна, известные также как атрибуты регистрации, зарегистрированные с помощью функции RegisterClass.

    Поле style содержит стиль класса - одну из комбинаций констант стиля класса cs_.

    Поле lpfnWndProc указывает на оконную функцию окна - подпрограмму, которая получает и обрабатывает сообщения.

    cbClsExtra - это число байт, которые должны выделяться в конце записи TWndClass. Они называются дополнительными байтами класса и доступны с помощью функций GetWindowLong и GetWindowWord. Установить их можно с помощью функций SetWindowLong и SetWindowWord.

    cbWndExtra дает число байт, выделенных в конце экземпляра окна.

    hInstance - это описатель экземпляра, который должен указывать на модуль класса. Он должен быть ненулевым.     Поля hIcon, hCursor и hbrBackGround - это описатели пиктограммы, курсора класса и фонового цвета класса соответственно. В качестве фонового цвета должно указываться значение цвета (один из стандартных системных цветов, заданный константой color_, увеличенный на 1) или описатель кисти для раскраски фона. Если hbgBackGround равно 0, то фон приложения должен раскрашиваться при раскраске области клиента. Необходимость этого можно определить обработкой сообщения wm_EraseBkgnd или проверкой поля fErase записи TPaintStruct, созданной BeginPaint.

    Поля lpszMenuName и lpszClassName указывают на строки с завершающим нулем, представляющими, соответственно, имя ресурса меню класса и имя класса.

    См. также: TWindowsObject.GetWindowClass.