Итак, на палитре компонентов в пункте «Jv Validators» имеем три компонента:
- TJvValidators – фактически содержит список компонент типа TJvBaseValidator или их наследников;
- TJvValidationSummary — является коллекцией для сообщений об ошибках при неудачной валидации;
- TJvErrorIndicator — предоставляет пользовательский интерфейс для индикации ошибки в элементе управления.


- ControlToValidate - элемент управления, с которым ассоциируется валидатор;
- ErrorMessage - сообщение об ошибке;
- PropertyToValidate - свойство элемента управления, подлежащее валидации;
- Valid - результат валидации.
Regular Expression Validator используется для проверки соответствия значения какого-либо свойства элемента управления регулярному выражению (например, для вышеупомянутого TEdit можно проверить сответствует ли заданному регулярному выражению свойство Text, т.е. введенные пользователем данные). Регулярное выражение указывается в свойстве ValidationExpression.
Range Validator используется для проверки вхождения значения какого-либо свойства элемента управления в заданный диапазон. Минимальное и максимальное значения диапазона указывается в свойствах MinimumValue и MaximumValue. Кроме этого, у этих свойств имеется свойство Type, в котором указывается тип минимального и максимального значений диапазона. (Для компонента TUpDown можно проверить свойство Position.)
Custom Validator позволяет выполнить произвольную проверку какого-либо свойства элемента управления. Для этого необходимо реализовать обработчик события OnValidate. Сигнатура обработчика выглядит следующим образом:
procedure JvCustomValidator1Validate(Sender: TObject; ValueToValidate: Variant; var Valid: Boolean);В параметре ValueToValidate содержится значение свойства элемента управления, указанное в свойстве PropertyToValidate валидатора. Все необходимые проверки необходимо производить с этим параметром, и в случае успешного результата параметру Valid необходимо присвоить значение True, в обратном случае — False.
Compare Validator позволяет сравнить значение какого-либо свойства элемента управления со значением, задаваемым с свойстве ValueToCompare валидатора. Также в свойстве Type можно указать тип этого значения. Свойство Operator позволяет задать оператор, при помощи которого будет производиться сравнение (менее чем, менне или равно и т.д.).
Controls Compare Validator позволяет сравнивать значения какого-либо свойства двух элементов управления (видимо одинакового типа). Свойство элементов управления для сравнения задается в свойстве валидатора PropertyToValidate, свойство Operator аналогично описанному в предыдущем пункте. Второй элемент управления задается в свойстве валидатора CompareToControl.
Продолжение в следующем посте.
Прошу прощения, что не совсем в тему. Просто уже не знаю где спросить!
ОтветитьУдалитьРаботаю в C++ Embarcadero RAD Studio 2010. Начал недавно пользоваться библиотекой jvcl. Нашел много интересного и удобного. Но сейчас требуется создать автономный вариант приложения. Я привычно устанавливаю Project->Options->Linker->Dinamic RTL=false, сбрасываю флажок Project->Options->Packages->Build with runtime packages, но при попытке компиляции получаю следующие сообщения:
[LINK32 Error] Error: Unable to open file 'JVDBGRID.RES'
...
[LINK32 Error] Error: Unable to open file 'JVDBGRIDSELECTCOLUMNFORM.DFM'
[LINK32 Error] Error: Unable to perform link
Failed
Попробовал указать в Project->Options->Resource compiler->Derictories and Conditionals->Include file search path путь к ненайденным ресурсным файлам, но никакого эффекта не добился. Подскажите, что делать
Автономный вариант приложения - это, как я понимаю, приложение работающее не на машине разработчика без установленной IDE? Если да, то никаких действий для этого я не предпринимал. После компиляции приложение должно содержать все необходимое для своей работы.
ОтветитьУдалитьПо поводу Project->Options->Linker->Dinamic RTL ничего сказать не могу, так как в 2007 версии у меня такого нет, а флажок Project->Options->Packages->Build with runtime packages сброшен.
Не совсем понятно по поводу автономного приложения - у Вас для запуска приложения требуется установленная библиотека JVCL?
Не подскажите, а нет ли случайно в данной библиотеке компонента, который бы выдавал такую информацию как CPUid, HDDid и прочего оборудования установленного в компьютере?
ОтветитьУдалитьИли может существует какой-то другой компонент?
Заранее спасибо!