Вот во времена Turbo Pascal/Turbo Vision у контролов была концепция Validator'ов.
Ввода/вывода.
Очень правильная концепция, как я теперь понимаю.
Жалко что Borland когда сделал Delphi - выпилил эту концепцию.
Тогда бы например не надо было бы "городить" отдельный класс типа TMaskEdit.
А уж теперь при наличии "лямбд".
Приходится прикручивать свой аналог.
Даже VisualLiveBinding - "вроде про то же", но не "про то".
Ввода/вывода.
Очень правильная концепция, как я теперь понимаю.
Жалко что Borland когда сделал Delphi - выпилил эту концепцию.
Тогда бы например не надо было бы "городить" отдельный класс типа TMaskEdit.
А уж теперь при наличии "лямбд".
Приходится прикручивать свой аналог.
Даже VisualLiveBinding - "вроде про то же", но не "про то".
Мы возродили эту концепцию, правда в сильно изменённом виде.
ОтветитьУдалитьПроцесс валидации элементов управления у нас достаточно сложен - сказываются весьма специфический (вплоть до экзотики) требования к поведению форм. Например, есть валидация выбора элемента справочника, выполняющаяся в разных сценариях (если быть точным - их три), валидация при выходе из поля ввода (Tab) - хинт в случае выявления каких-либо проблем, валидация самой формы, подразумевающая валидацию всех её составных частей.
MaskEdit - ну да :-) Я тоже смеялся...
Вообще же, концепции Delphi вроде упомянутого VisualLiveBinding выглядят жалко на фоне требований разработки форм не программистами. Эти концепции просто не применишь, поскольку пользователь, имея доступ к дизайнеру форм не имеет доступа к коду, в котором он ничего не понимает. Тут нужен другой операционный язык.
Хорошо ;)
Удалить