Совет 302. Используйте элемент управления IE Timer
Андрей Колесов
Отсутствие встроенных элементов управления (на что мы сетовали в
предыдущем совете) можно компенсировать возможностью использования
дополнительных элементов управления ActiveX. Если у вас имеется VB 5.0
или 6.0, то вы можете самостоятельно сделать, например, на основе
встроенного элемента Timer собственный ActiveX-компонент для
реализации функции таймера. Такой OCX можно было бы использовать в
конструкторе MS Forms 2.0 (VBA-формы). Но прежде чем делать свои
компоненты, стоит посмотреть, нет ли уже готового подходящего элемента
на Web-сайтах с VB-ресурсами и разными Freeware & Shareware.
Так, очень нужный порой компонент Timer в виде файла IETimer.OCX можно
найти по адресу
www.visual.2000.ru/develop/vb/source/.
Но здесь мы хотели бы отметить некоторые различия в процедурах
подключения OCX к среде VB и VBA.
-
Обычно OCX-компоненты помещаются в системный каталог Windows/System/.
Однако мы рекомендуем размещать такие дополнительные файлы в
каком-нибудь специально созданном для этого пользовательском
подкаталоге. Это упростит процедуры "чистки мусора" и обновления
версий компонентов, так как можно будет четко следить за тем, что вы
записали сами, а что автоматически прописали в System операционная
система и программы установок разных приложений.
-
Далее необходимо зарегистрировать OCX-файл. Лучше всего это сделать с
помощью утилиты RegSvr32.exe, которая входит в состав VB и Office
(проще всего скопировать ее в подкаталог с вашими OCX):
RegSvr32.exe Your.OCX
- Подключение к панели Toolbox для VB- и VBA-форм несколько различается.
- Для VB-форм (в среде VB) выберите команду Project|Components, а потом
во вкладке Controls установите флажок IE Timer (в данном случае
зарегистрировать OCX можно, подключив нужный файл с помощью кнопки
Browse).
В среде Office/VBA также имеется команда (и диалоговое окно)
Insert|Components|Controls, но зачем она здесь присутствует, куда
подключаются выделенные элементы управления, — этого мы не поняли.
- Для подключения дополнительного элемента управления в среде VBA
выберите команду Tools|Additional Controls. К ней можно также
обратиться с помощью контекстного меню, которое появляется после
щелчка правой кнопкой мыши панели Toolbox (только так и можно сделать,
работая с MS Forms 2.0 в среде VB). Но проблема в данном случае
заключается в том, что имя искомого компонента будет другим — Timer
Object.
-
Не менее интересна процедура отключения дополнительного компонента.
Для VB-форм нужно войти в окно Components|Controls и убрать в нем
флажок. Для VBA-форм эту же операцию можно сделать в окне Additional
Controls. Только проще — щелкнуть правой кнопкой мыши на изображении
компонента на панели Toolbox и выбрать команду Delete. Кстати, с
помощью этого же меню в данном случае можно изменить название и
изображение пиктограммы элемента управления (рис. 302):

Рис. 302
-
Еще один вопрос — как убрать имя ненужного компонента из списков в
окнах Components|Controls и Additional Controls. Отменить регистрацию
OCX (вернее, любого ActiveX-компонента) можно с помощью той же утилиты
RegSvr32:
RegSvr32.exe /u Your.OCX
Но иногда оказывается, что этого недостаточно, и приходится вручную
просматривать (искать заданный файл) и чистить Реестр.