[an error occurred while processing this directive]
В начале 70-х годов в СССР совместно со странами НРБ, ВНР, ЧССР, ГДР были разработаны и начато производство ЭВМ 3-го поколения единой системы (ЕС ЭВМ) совместимых с IBM 360. Эти ЭВМ послужили основой для организации вычислительных центров коллективного пользования и автоматизированных сис-тем управления на предприятиях и организациях. В 1971 г. управление перспективных исследований Министерства обороны США объявило о вводе в действие на баз ЭВМ третьего поколения первой части глобальной информационно-вычислительной сети ARPANET. В 1982 г. ARPANET была объединена с другими сетями и это сообщество сетей получило название Internet.

Использование объектов - контроллеров
 

Контроль текстового ввода

Как уже говорилось, основное назначение объектов-контролеров состоит в контроле текстовой информации, вводимой пользователем с помощью объектов TInputLine или их специализированных потомков. Для упрощения подключения контролера в объекте TInputLine предусмотрен специальный метод SetValidator, единственным параметром обращения к которому является ссылка на экземпляр объекта-контролера. Таким образом, подключение контролера осуществляется в два этапа: вначале инициируется экземпляр объекта-контролера, а затем вызывается метод TInputLine.SetValidator для объекта, осуществляющего ввод данных. Например:

var

InpLine: PInputLine; 

Validator: PRangeValidator; 

begin

{Создаем строку ввода}

InpLine := New(PInputLine,Init(...));

{Создаем объект-контролер} 

Validator := New(PRangeValidator,Init(0,10));

{Связываем контролер с редактором} 

InpLineA.SetValidator(Validator) ;

.....

end;

Можно объединить оба действия в одном операторе:

InpLine^.SetValidator(New(PRangeValidator,Init(0,10))

При работе совместно с объектом TInputLine контролер может активно воздействовать на ввод пользователя. Это относится к объектам TFilterValidator и TPXPicture-Validator: они контролируют ввод каждого символа и игнорируют нажатие пользователем клавиши, если очередной символ не соответствует требуемому. Объект TPXPictureValidator, кроме того, способен автоматически дополнять ввод пользователя неспециальными символами шаблона. Если, например, шаблон задан следующим образом:

InpLine^.SetValidator(New(PPXPictureValidator, Init('#/#/#',True)))

то нажатие пользователем любых клавиш, кроме цифровых, будет игнорироваться, а сразу после нажатия первой (второй) цифровой клавиши в строке ввода появится символ «/». Вставкой неспециальных символов шаблона управляет второй параметр обращения к методу TPXPictureValidator.Init (True - разрешить вставку, False - запретить).

 

Проверка других объектов

Хотя чаще всего для реализации текстового ввода Вы будете использовать объект TInputLine или его специализированного потомка, не исключена возможность проверки данных, подготовленных другими видимыми объектами. Для этого в поле Options любого видимого элемента предусмотрен бит ofValidate, единичное состояние которого приведет к тому, что при каждой потере видимым элементом фокуса ввода будет вызываться его метод Valid, который он наследует от TView. Перекрыв этот метод, Вы сможете обратиться к любому объекту-контролеру для проверки данных.

 

Реализация нестандартного контроля

Возможно, Вам понадобится сконструировать собственный объект-контролер. В этом случае Вы должны помнить, что за контроль отвечают четыре метода базового объекта TValidator: Valid, IsValidInput, IsValid и Error, причем абстрактные методы Is Valid и Error перекрываются в потомках, вызываются другими методами объекта-контролера и не предназначены для вызова извне.

Метод Valid получает строку, введенную пользователем, осуществляет ее контроль и возвращает True или False в зависимости от результатов контроля (True означает правильный ввод). Метод IsValidlnput также получает строку символов ввода, однако,в отличие от Valid, он получает ее после каждого изменения пользователем входной строки. Метод IsValidlnput имеет два параметра обращения:

Function TValidator.IsValidlnput(var S: String; SuppressFill: Boolean): Boolean

Параметр SuppressFill указывает, должен ли метод автоматически форматировать строку перед ее проверкой. Если этот параметр имеет значение True, метод должен дополнить подготовленный пользователем ввод S нужными в этом месте символами и только после этого производить контроль. Поскольку параметр S определен как параметр-переменная, метод может вставлять дополнительные символы непосредственно в строку ввода, но ни в коем случае не должен удалять ошибочно введенные символы из нее. Из всех стандартных контролеров только TPXPictureValidator использует SuppressFill = True.I

Рассмотрим процесс решения задачи с помощью компьютера на примере изучения полета артиллерийского снаряда. Вначале необходимо определиться с условиями задачи. Предположим, необходимо рассмотреть движение снаряда в поле тяготения Земли. При этом будем рассматривать только те параметры, которые характеризуют движение снаряда (скорость и координаты), и отвлечемся от других параметров (температура снаряда, его цвет и т.д.). В качестве исходных данных в нашем случае будут выступать угол вылета снаряда A, его начальная скорость V и время полета t.
[an error occurred while processing this directive]