Сегодня новостная лента пестрит сообщениями о том, что разработчики JRuby ушли из Sun в Engine Yard. В одном из сообщений есть предположение, что после покупки Sun'а Oracle'ом некоторым продуктам Sun грозит исчезновение, в том чимле и JRuby. Что ж, если это так, то надеюсь этот шаг позволит не исчезнуть JRuby.
среда, 29 июля 2009 г.
пятница, 24 июля 2009 г.
JRuby - новая версия и новый сайт
Зашел я на сайт JRuby и увидел, что дизайн-то сменился. Надо сказать, что очень красиво получилось.
Кроме этого, увидел, что уже больше месяца назад вышла новая версия - 1.3.1. Что-то я стал пропускать события из мира JRuby. Несмотря на то, что в новой версии сайта появилась иконка RSS, самого RSS на сайте до сих пор нет :(
UPD
Начал копаться на сайте и нашел ссылку на блог JRuby Team Blog, который появился чуть раньше выхода JRuby 1.3.1. Подписался на RSS этого блога.
Кроме этого, увидел, что уже больше месяца назад вышла новая версия - 1.3.1. Что-то я стал пропускать события из мира JRuby. Несмотря на то, что в новой версии сайта появилась иконка RSS, самого RSS на сайте до сих пор нет :(
UPD
Начал копаться на сайте и нашел ссылку на блог JRuby Team Blog, который появился чуть раньше выхода JRuby 1.3.1. Подписался на RSS этого блога.
среда, 22 июля 2009 г.
пятница, 17 июля 2009 г.
Валидаторы в JVCL. Часть 2
Начало в предыдущем посте.
Валидация с помощью JvValidators
У компонента JvValidators реализуем обработчик события OnValidateFailed. Обработчик предназначен для вывода сообщений об ошибке и может выглядеть так:
Валидация осуществляется с помощью следующего кода:
Размещаем на форме компонент TJvValidationSummary и получаем JvValidationSummary1. У компонента JvValidators1 устанавливаем свойство ValidationSummary в значение JvValidationSummary1 и реализуем обработчик события OnChange. Обработчик предназначен для вывода сообщений об ошибке и может выглядеть так:
Размещаем на форме компонент TJvErrorIndicator и получаем JvErrorIndicator1. У компонента JvValidators1 устанавливаем свойство ErrorIndicator в значение JvErrorIndicator1. Валидацию можно осуществить с помощью следующего кода:
За ее появление отвечает компонент JvErrorIndicator.
При необходимости сообщение об ошибке можно куда-нибудь вывести, но при большом количестве валидаторов удобно реализовать метод, который облегчит нам работу. Сигнатура метода следующая:
Валидация с помощью JvValidators
У компонента JvValidators реализуем обработчик события OnValidateFailed. Обработчик предназначен для вывода сообщений об ошибке и может выглядеть так:
RichEdit1.Lines.Add(Format('%s',[BaseValidator.ErrorMessage]));Естественно, вместо RichEdit можно взять любой другой компонент.
Валидация осуществляется с помощью следующего кода:
JvValidators1.Validate;Валидация с помощью JvValidationSummary
Размещаем на форме компонент TJvValidationSummary и получаем JvValidationSummary1. У компонента JvValidators1 устанавливаем свойство ValidationSummary в значение JvValidationSummary1 и реализуем обработчик события OnChange. Обработчик предназначен для вывода сообщений об ошибке и может выглядеть так:
RichEdit1.Lines.Text :=Валидация осуществляется с помощью следующего кода:
TJvValidationSummary(Sender).Summaries.Text;
JvValidationSummary1.Summaries.Clear;Валидация с помощью JvErrorIndicator
JvValidators1.Validate;
Размещаем на форме компонент TJvErrorIndicator и получаем JvErrorIndicator1. У компонента JvValidators1 устанавливаем свойство ErrorIndicator в значение JvErrorIndicator1. Валидацию можно осуществить с помощью следующего кода:
JvErrorIndicator1.BeginUpdate;Рядом с элементами управления, не прошедших валидацию, появится предупреждающая иконка:
try
JvErrorIndicator1.ClearErrors;
JvValidators1.Validate;
finally
JvErrorIndicator1.EndUpdate;
end;

При необходимости сообщение об ошибке можно куда-нибудь вывести, но при большом количестве валидаторов удобно реализовать метод, который облегчит нам работу. Сигнатура метода следующая:
procedure ProviderErrorValidateFailed(Sender: TObject; BaseValidator: TJvBaseValidator; var Continue: Boolean);Код метода может выглядеть например так:
JvErrorIndicator1.Error[BaseValidator.ControlToValidate]:= BaseValidator.ErrorMessage;Надеюсь, чта это информация кому-нибудь пригодится :)
RichEdit1.Lines.Add(Format('%s', [BaseValidator.ErrorMessage]));
четверг, 16 июля 2009 г.
Валидаторы в JVCL. Часть 1
Вчера полдня потратил на то, чтобы разобраться как работать с валидаторами из библиотеки JVCL. В интернете никакой информации на эту тему нет, хелп самой библиотеки оказался крайне скуп. Пришлось разбираться с исходниками примеров, которые к сожалению оказались не слишком очевидны. Тем не менее, все оказалось достаточно просто.
Итак, на палитре компонентов в пункте «Jv Validators» имеем три компонента:
В появившемся редакторе добавляем валидатор необходимого типа:
После этого уже можно работать с валидатором. Рассмотрим их подробнее. У валидаторов всех типов есть общие свойства:
Regular Expression Validator используется для проверки соответствия значения какого-либо свойства элемента управления регулярному выражению (например, для вышеупомянутого TEdit можно проверить сответствует ли заданному регулярному выражению свойство Text, т.е. введенные пользователем данные). Регулярное выражение указывается в свойстве ValidationExpression.
Range Validator используется для проверки вхождения значения какого-либо свойства элемента управления в заданный диапазон. Минимальное и максимальное значения диапазона указывается в свойствах MinimumValue и MaximumValue. Кроме этого, у этих свойств имеется свойство Type, в котором указывается тип минимального и максимального значений диапазона. (Для компонента TUpDown можно проверить свойство Position.)
Custom Validator позволяет выполнить произвольную проверку какого-либо свойства элемента управления. Для этого необходимо реализовать обработчик события OnValidate. Сигнатура обработчика выглядит следующим образом:
Compare Validator позволяет сравнить значение какого-либо свойства элемента управления со значением, задаваемым с свойстве ValueToCompare валидатора. Также в свойстве Type можно указать тип этого значения. Свойство Operator позволяет задать оператор, при помощи которого будет производиться сравнение (менее чем, менне или равно и т.д.).
Controls Compare Validator позволяет сравнивать значения какого-либо свойства двух элементов управления (видимо одинакового типа). Свойство элементов управления для сравнения задается в свойстве валидатора PropertyToValidate, свойство Operator аналогично описанному в предыдущем пункте. Второй элемент управления задается в свойстве валидатора CompareToControl.
Продолжение в следующем посте.
Итак, на палитре компонентов в пункте «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.
Продолжение в следующем посте.
Подписаться на:
Сообщения (Atom)