• Иллюстрированный самоучитель по Turbo Pascal

    Объекты-контролеры

    TFilterValidator

    Этот объект проверяет все введенные пользователем символы на их принадлежность к набору допустимых символов. Если очередной вводимый символ не принадлежит эталонному множеству, он игнорируется и при наборе просто не появляется в строке ввода. Таким образом, объект TFilterValidator действительно фильтрует вводимую строку, удаляя из нее неправильные символы. Например, экземпляр объекта, который выбирает из ввода только цифры:

    MyFilter: = New(PFilterValidator,Init(['0'..'9']))
    

    TRangeValidator

    Объект TRangeValidator порожден от TFilterValidator. Он преобразует символьный ввод в целое число и проверяет, находится ли оно в диапазоне указанных значений Min…Max. Его метод IsValid вернет значение True только в том случае, когда, во-первых, пользователь введет правильное число, и, во-вторых, это число будет принадлежать нужному диапазону. Например, объект, который позволяет вводить числа в диапазоне от 0 до 100 включительно:

    MyRange: = New(PRangeValidator,Init(0.100))
    

    TLookupValidator

    Абстрактный объект TLookupValidator предназначен для контроля соответствия введенной пользователем строки набору эталонных строк. Фактически он модифицирует поведение базового объекта TValidator на случай, когда проверяется произвольная текстовая строка. В его потомках должен перекрываться метод Lookup, осуществляющий нужный контроль и возвращающий True только в том случае, когда подготовленная пользователем строка соответствует одному из желаемых значений. Например, с помощью объекта:

    type
    TMyLookupValidator = object(TLookupValidator)
    Function Lookup(const S: String): Boolean; Virtual;
    end;
    Function TMyLookupValidator.Lookup;
    const
    Text1 = 'Turbo';
    Text2 = 'Pascal';
    begin
    Lookup: = (S=Textl) or (S=Text2) or (S=Textl+' '+Text2)
    end;
    

    Можно потребовать от пользователя ввода только одной из трех возможных строк: Turbo, Pascal или Turbo Pascal.

    TStringLookupValidator

    Этот объект порожден от TLookupValidator и сравнивает введенную пользователем строку с набором допустимых строк, хранящихся в отсортированной коллекции. Чтобы объект осуществлял сравнение с нужным набором строк, он инициируется следующим образом:

    var
    MyCollection: PStringCollection; MyStrVal: PStringLookupValidator;
    begin
    {Создаем коллекцию строк}
    MyCollection: = New(PStringCollection,Init(1.1));
    {Наполняем коллекцию – размещаем строки в куче}
    MyCollection.Insert(NewStr('Турбо'));
    MyCollection.Insert(NewStr('Паскаль'));
    {Создаем объект-контролер}
    MyStrCol: = New(PStringLookupValidator,Init(MyCollection))
    end;
    
    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.