Создаем свой ActiveX Control
Михаил Эскин
Небезизвестный факт - Бэйсик, начиная с пятой версии поддерживает
создание собственных контролов. Причем не только для "внутреннего пользования"
, но и для распостранения. В шестой версии Visual Basic процесс может
быть изрядно автоматизирован использованием специального визарда, входящего
в комплект установки VB. Однако на мой взгляд игры программистов в "создание
контролов" - вещь себя совершенно не окупающая. Почему? Обьясняю.
Чаще всего вы хотите от нового контрола какого- то необычного
поведения. Еще более часто это поведение является необычным только для
стандартных контролов от Микрософта. Итак, что же мы имеем в результате.
Либо вы тратите пару дней на создание и отладку мало мальски серьезной
компоненты. Либо приобретаете ее. Я не буду сейчас распостранятся на счет
легального - нелегального софта и сравнительного анализа зарплаты российского
и американского программиста - в конечном счете соотношение стоимости
софта к месячной зарплате получится примерно одна, а скорее даже в пользу
российского программиста.
Факт тот, что за те 2-3 дня работы, которые необходимы для создания контрола
вы получите зарплату если не превышающую, то одного порядка с ценой на
покупные контролы. Дело в том, что 80 процентов того, что вам может захотеться
иметь реализованным в контролах - уже реализованно и продается. Более
того реализовано на более низком уровне , как минимум на C++ , что нередко
делает поведение этих контролов сильно отличающимся от стандартного. С
их помощью вы в 2-3 строчки кода реализуете сложнейшие вещи, для написания
которых на Vb пришлось бы сильно напрячься, использовать API, причем не
всегда "законным" (с точки зрения Вижуал Бэйсика) образом .
Т.е. единственная проблема - узнать, что контролы такие есть, и кто их
выпускает. Далее идти покупать.
Так я думал до совсем недавнего времени. Изменить его заставила ситуация
на моей работе. Группа программистов пишет большой проект. В результате
в проект должны входить сотни форм.
Дизайн этих форм должен быть однообразным. Более того, в "фичи"
программы заложена возможность изменения цветовой гаммы, по примеру
так модных сейчас "Скинов"
Мы используем определенный набор покупных контролов, полностью реализующих
возможности для работы с цветом и частично с формой контролов. Но! Каждый
раз при создании контрола из панели инструментов приходится настраивать
эти свойства. Плюс, хотелось бы иметь еще несколько новых свойств, именно
в свете реализации смены внешнего вида "на лету" Итак, оказалось проще
создать набор новых контролов, и всем вместе их использовать, чем каждый
раз настраивать их свойства заново. Подводя итог должен сказать - да,
существуют ситуации , когда создание контрола целесообразно.
Программист на VB должен уметь это делать.
В связи с этим открываем серию статей "как создать
свой контрол"
Часть первая
Создаем
свой первый контрол - контейнер с плавающей надписью
Часть вторая
Сегодня мы будем создавать ActiveX Control невидимый во время работы программы
Часть третья
Сегодня мы не будем создавать свой контрол, а возьмем тот, который уже существует,
и добавим в него свои свойства
Часть четвертая
Создаем "с нуля" ProgressBar контрол
Часть пятая
Создаем контрол - цифровой индикатор
Часть шестая
Здесь описывается создание градиентной заливки, эмуляции объема для контрола и текста,
встраивание ComboBox'а в Property Page.
Часть седьмая
В данной статье описывается создание массивов в ActivX Control'е
Часть восьмая
Создание ActiveX Control'а с дополнительной формой
Часть девятая, заключительная
Создаём Контрол-контейнер произвольной формы
Это не FAQ,
это просто обмен знаниями
Как упоминалось выше - созданные контролы требуется регистрировать
- для этого в системе есть regsvr32.exe
|
|