В этом разделе давайте попрактикуемся. Сначала создайте COM-объект, затем используйте его и, наконец, подумайте об улучшениях.
Сначала выполните следующие два шага:
Запустите Visual Basic; выберите тип проекта «StandardEXE»; поскольку COM-объекты основаны на классах, классы на самом деле являются пакетами, как и код в модуле. так:
Выберите «PROject» -> «AddClassModule»; когда появится соответствующее диалоговое окно, выберите «ClassModule» и нажмите кнопку «Открыть».
Таким образом, на рабочем столе отображается форма, а также Class1, содержащийся в Project1.
Затем измените имя пустого класса:
В окне свойств класса измените свойство Name класса на CDog.
Следует отметить, что в целях различия каждое имя объекта имеет соответствующий префикс, например, объекту TextBox предшествует «txt», форме — «frm», а классу может предшествовать заглавная буква. буква «С» или строчная буква «cls»», но здесь используется первая.
Давайте добавим немного кода для проверки:
В разделе общего объявления класса CDog добавьте объявление переменной:
Затем откройте Form1;
Добавьте в форму командную кнопку;
Откройте окно кода и добавьте следующий код к командной кнопке:
Поясним смысл приведенного выше кода:
Эта строка инструкции используется для уведомления Visual Basic о необходимости установить битовое пространство для объекта CDog. Однако в настоящее время объект не может быть использован и должен дождаться следующего оператора:
Он используется для создания экземпляров CDog. Это означает, что ранее пустой шаблон MyDog становится объектом CDog, который теперь можно использовать.
Первая строка приведенного выше кода используется для установки переменной Name MyDog, а вторая строка операторов используется для отображения содержимого переменной в диалоговом окне сообщения. наконец:
Используется для простой очистки объекта MyDog.
Нажмите F5, чтобы запустить и протестировать.
Как насчет этого? Но в то же время мы не можем не задаться вопросом, в чем разница между стандартными модулями и модулями классов? Давайте еще раз посмотрим на следующий пример:
Измените код командной кнопки на:
В отличие от предыдущего кода, этот код фактически определяет два объекта: MyDog и MyDog2, которые являются двумя независимыми объектами, основанными на CDog.
Нажмите F5, чтобы запустить и протестировать.
Каков был результат? На этот раз появляются два диалоговых окна? На одном написано «БиллиМур», а на другом — «СэдиМур».
За исключением имени, каждый объект, определенный выше, не имеет никаких реальных атрибутов, поэтому будет добавлен следующий процесс:
Откройте предыдущий Class1;
Объявите следующие общедоступные переменные:
Откройте предыдущую форму Form1;
Измените код командной кнопки на:
Код аналогичен предыдущему, за исключением того, что здесь используется переменная Age.
Нажмите F5, чтобы запустить и протестировать.
Должны появиться два диалоговых окна сообщений, показывающие содержимое имени и возраста.
Теперь попробуйте установить значение возраста одного из объектов на 1000 или 30 000. Видите, как это получается? Программа по-прежнему работает нормально, поскольку максимальное значение определенной целочисленной переменной может достигать 32 767, но фактическому возрасту собаки (Dog) не 30 000 лет.
Итак, как следует поступить в этой ситуации?
->