Наш элемент, который мы полностью сами создадим с нуля будет представлять из себя правильную n-угольную звезду. При этом количество углов (n) можно будет задавать в окне свойств на этапе разработки программы, в которой наш ActiveX-элемент будет использоваться . Кроме того, на этапе разработки можно будет задавать число m, которое будет характеризовать, как будут соединятся между собой вершины нашей n-угольной звезды. Например, если мы зададим n=7, а m=2 то получим звезду, расположенную слева на рис. 2, а при n=7, а m=3 получим звезду, расположенную справа на этом же рисунке.
Кроме того, наша звезда будет поддерживать событие Click, т. е. в обработчик этого события мы после создания нашего ActiveX-элемента сможем вписать всё что угодно (точно также, как, скажем, в обработчик события Click для стандартной кнопки). Ещё мы посмотрим, как в ActiveX-элементе задаются методы - скажем у нас будет метод DrawStar c двумя аргументами (n и m), рисующий соответствующую звезду.
Запускайте Visual Basic. При загрузке у Вас возникает хорошо знакомое Вам окно New Project (рис. 3), в котором Вы указываете, проект какого типа Вы хотите создать. Если это окно при запуске Visual Basic'а у Вас не появилось, то зайдите в меню File и выберете там подменю New Project.
До сего момента Вы всегда выбирали Standard EXE, т. е. самый обычный проект, которых Вы уже и так за свою жизнь достаточно много сделали. На этот раз мы выберем в качестве типа проекта ActiveX Control (не перепутайте - не ActiveX EXE или ActiveX DLL, а именно ActiveX Control!). После выбора нажимаем, естественно, OK.
Получаем довольно-таки знакомую картинку (рис. 4) - начальная форма, панель свойств, панель элементов и т. п. - выглядит почти всё также, как и при типе проекта Standard EXE. Но есть и различия - обратите внимание, что в заголовке формы у нас стоит UserControl1 вместо привычного Form1. И это важно - на самом деле в нашем проекте мы имеем дело не формой (которая выступает в программе как нечто самодостаточное - т. е. она может существовать сама по себе), а с элементом управления (по-английски UserControl), который, в отличие от формы, не может существовать сам по себе, а всегда находится в некотором контейнере, в качестве которого может выступать форма, или что-нибудь другое (например окно браузера).
Теперь изменим некоторые свойства для нашего элемента и нашего проекта. Как Вы хорошо помните, не стоит оставлять разные значения по умолчанию, автоматически даваемые Visual Basic'ом. Во-первых, Вам потом самим будет непросто вспомнить, что это за элемент такой - TextBox6 (куда понятнее будет txtPassword), и во-вторых, в случае ActiveX-элементов с плохими названиями придётся иметь дело и пользователям Вашего элемента, т. е. людям, с которых Вы собираетесь собирать деньги. А для них лучше всё сделать максимально удобным (чтобы покупателей было как можно больше ;)).
Для этого, во первых, меняем свойство Name для нашего UserControl'а на Star (зачем? А вот зачем - именно это слово (Star) и будет появляться в качестве всплывающей подсказки, когда пользователь Вашего ActiveX-элемента поднесёт и задержит на пару секунд мышиный курсор над ним на панели элементов (рис. 5)) и, во-вторых, меняем значение для свойства AutoRedraw на true (для того, чтобы элемент сам перерисовывался). Эти изменения мы произвели со свойствами самого UserControl1 (который теперь стал не UserControl1, а Star). Теперь изменим одно свойство для самого проекта - а именно имя проекта. Для этого сначала выделяем имя проекта в Project Explorer'е (рис. 6), и затем в окне свойств меняем свойство Name (оно там одно единственное) на MyStar.
После этого заходим в меню Project и выбираем там MyStar Properties… Появляется диалоговое окошко соответствующее диалоговое окошко рис. 7.
Обратите внимание, что в этом окне в качестве Project Name уже стоит MyStar (т. е. то название, которое мы дали нашему проекту на одном из предыдущих шагов).
В этом окошке производим следующие изменения:
В Project Descriptions (описание проекта) пишем Osco do Casco Stars или что-то в этом духе. Именно это надпись и появится при использовании нашего ActiveX-элемента в других проектах (см., например, рис. 1). Если у Вас уже есть собственная фирма, то в качестве данного описания проекта можете писать Имя_Вашей_Фирмы Имя_ActiveX-элемента. Тогда все созданные Вами ActiveX-элементы будут расположены в списке подряд (как у Microsoft'а). После всего этого закрываем окошко свойств проекта нажав кнопку OK. И последний шаг на данном этапе - сохранение нашего проекта. С этим Вы, несомненно, справитесь и сами. В качестве папки возьмите папку star на диске D:, в качестве запрашиваемых при сохранении имён введите star (для проекта и для UserControl).
Далее