Платный
хостинг от провайдера HostSpace.com.ua - хостинг, регистрация доменов.
Поддержка PHP, MySQL, почта - в каждом тарифном плане.
V8 Engine: формы и управление формами
Автор:WildHare
Источник: B-LOG
Появление бета-версии V8 означает, что можно отложить в сторону любимые игрушки
(видели Postal-2? чума, а не игрушка) и заняться изучением новой платформы уже
по-серьёзному
Первый вдумчивый взгляд, брошенный на дерево Синтаксис-Помощника (который и
в бете остался всё таким же откровенно ущербным в использовании) вызывает лёгкую
оторопь. Всё не так. Вдумчивое изучение кода той же ТиС вызывает оторопь уже
тяжёлую.
Но ведь поговорку про "тяжело в учении" придумали умные люди, верно?
;-)
Начал я, естественно, не с "прикладных объектов" и даже не с "системных
коллекций". Я начал с форм. При беглом осмотре СП мне попалась ветка "ЭлементыУправления"
– сами понимаете, дальше я уже не ушёл. Это что же, у нас наконец-то появилось
настоящее управление формой из кода? Проведенные эксперименты показали – таки
да, появилось.
Сами по себе формы V8, даже без динамического управления – это уже вещь. И
дело не в том, что программисту доступна куча "предустановленных"
бантиков (прогресс-бары, календари, тулбары, бегущие строки и прочее). Вовсе
нет. Главных фич две: панели и привязки.
Что есть панели? Это значит, что форму теперь можно делить на области, каждая
из которых живёт своей жизнью. Каждая может содержать любое количество страниц
(переключаемых закладками). И настраивается всё это хозяйство визуально. Никаких
больше Закладки.ДобавитьЗначение… Ёмкость форм увеличилась несказанно, формы
стали если и не совсем резиновыми, то очень близкими к этому состоянию.
А что есть привязки? Это управление масштабированием элементов формы. Поведение
элементов формы при изменении размеров окна теперь полностью под нашим контролем:
этот остаётся слева внизу, этот прижимается к верхней границе и растягивается
по горизонтали на сколько хватит места. Ну и так далее. Правда, управление привязками
сделано через задний проход: привязки настраиваются отдельно для каждого элемента
(группы элементов), и происходит это в модальном окне.
Такое впечатление, что разработчики V8 в глаза не видели дизайнера форм из
VisualStudio 7 (а уже доступна версия 7.1). Также из рук вон плохо сделана отработка
ошибок, возникающих в процессе настройки привязок. Если вы задаёте некорректную
привязку (скажем, привязываете левую границу контрола к правому соседу, а правую
– к левому), то вы получаете сообщение из трёх букв. Никакой информации в сообщении
не содержится, и искать неправильную привязку вам придётся самостоятельно. Более
того, модальное окно откажется закрываться – придётся отключить все привязки,
закрыть модальное окно, а потом уже думать, что же вы сделали не так.
В общем, сама идея привязок – на пять баллов, а вот инструментарий – на двойку.
С минусом. Для бета-версии сойдёт, но вот в релизе хотелось бы видеть более
эргономичную реализацию этого инструмента.
Но человек привыкает ко всему. Начав с полного нуля я за каких-то два часа
изваял вот такую форму:
Справедливости ради стоит отметить, что на V7 за те же два часа можно изваять
не только форму, но и написать весь код для неё.. Но та же справедливость требует
отметить – это была моя первая форма на V8.
Естественно, при изменении размеров окна моя форма ведёт себя, как положено:
рамки растягиваются, некоторые контролы (ползунки) тоже, некоторые контролы
остаются при прежних размерах, но занимают позиции в нужных углах формы, ну
и всё такое прочее.
И только теперь мы подходим к самому главному. Форма ведь была нарисована не
просто так, а с целью испытать механизм управления элементами формы из кода.
И это действительно работает: мало того, что можно задать практически любой
параметр любому из существующих контролов, можно прямо из кода создать новый
контрол, задать ему свойста (координаты, размеры, визуальный стиль, обработчики
событий) и поместить в нужное место формы – и контрол там действительно появится.
Ну а если можно добавить, то можно и удалить, верно? ;-)
Примеры кода я тут приводить не буду – в качестве примера см. внешнюю обработку,
ссылка внизу.
Зачем это может быть нужно? Ну, скажем, если мы рисуем сложную форму, работающую
по принципу wizardа, и у нас много ветвлений и много разных вариантов – можно
не рисовать контролы заранее, а создавать их прямо из кода. Любые сложные универсальные
формы, состав контролов которых зависит от контекста вызова формы – это потенциальная
область применения.
Да и в любом случае – лучше, когда динамическое управление формами заложено
в платформу, чем когда его нет в принципе.
За бортом пока осталась целая пачка возможностей: управление фокусом и оповещение
о смене фокуса, механизм подчинения форм друг другу и обмен сообщениями, масса
обрабочиков (ожидания, обновления формы, модификации и записи данных). Но всё
это есть и (будем надеяться) всё это работает.
www.klerk.ru
Бухгалтерские вести 20-03-2007
Обновился настройщик Windows Ashampoo PowerUp 29-10-2008 Бухгалтерские вести 28.10.2008 Microsoft представила платформу Windows Azur 27.10.2008 Microsoft представил новую программу поддержки пользователей 27.10.2008 В Windows обнаружена опасная уязвимость 23.10.2008 Kerio MailServer - инструмент для работы с Microsoft Exchange 23.10.2008 Билл Гей...
Обновлен раздел "Документы" на Клерк.Ру 25-10-2008 Бухгалтерские вести ИА "Клерк.Ру". Отдел новостей Сегодня, 24 октября, в раздел "Документы" на Клерк.Ру поступили следующие документы: Документы Минфина РФ: Письмо Минфина РФ № 03-11-04/3/451 от 03/10/2008Письмо Минфина РФ № 03-03-06/2/133 от 06/10/2008Письмо Минфина РФ № 03-03-06/1/559 от 06/10/2008Письмо Минфина РФ № 03-05-05-01/61 от 06/10/2008Письмо Минфина РФ № 03-11-04/3/430 от 12/09/2008Письмо Минфина РФ № 03-03-06/1/556 от 01/10/2008Письмо Минфина ...
Коэффициент 0,5 отменят не для всех 21-10-2008 Бухгалтерские вести ИА "Клерк.Ру". Отдел новостей Таким образом, норма амортизации определяется на дату ввода объекта амортизируемого имущества в эксплуатацию и не может быть изменена в течение всего срока амортизации такого объекта. Новые правила амортизации, по которым с 1 января 2009 года понижающие коэффициенты по "дорогим" автомобилям и микроавтобусам, будут распространяться не на все подобные транспортные средства. При амортизации легковых автомобиле...
Путин подписал закон о портовых ОЭЗ 17-10-2008 Бухгалтерские вести ИА "Клерк.Ру". Отдел новостей Президент РФ Владимир Путин подписал Федеральный закон "О внесении изменений в Федеральный закон "Об особых экономических зонах в Российской Федерации" и отдельные законодательные акты Российской Федерации".Документ принят Госдумой 11 октября 2007 г и одобрен Советом Федерации 17 октября. Законом предусматривается возможность создания портовых ОЭЗ на территориях нескольких муниципальных образовани...
Если у резидента есть имущество за пределами ОЭЗ 17-10-2008 Бухгалтерские вести ИА "Клерк.Ру". Отдел новостей Если резидент ОЭЗ имеет за пределами особой экономической зоны имущество, то такое имущество подлежит налогообложению налогом на имущество организаций в общеустановленном порядке. В таком случае резидент обязан обеспечить отдельный учет облагаемых и необлагаемых налогом на имущество организаций объектов движимого и недвижимого имущества, то есть ведение отдельной оборотной ведомости, учитывающей остаточную стоимость ...
Учет расходов на выкладку товаров 17-10-2008 Бухгалтерские вести Материал предоставлен компанией "Аудит МСК" (посмотреть все статьи) Специалисты компании «Аудит МСК» продолжают делиться опытом решения вопросов, возникающих у сотрудников финансовых служб предприятий. Данная публикация будет посвящена вопросу учета расходов на выкладку товаров. Для продвижения продукции на рынке поставщиком заключаются договоры с организациями розничной торговли и общественного питания, согласно которым последние обязуются осу... |