КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Моделирование наследования. Фактическое наследование. WithEvents
Моделирование заключается во включении в свойства класса объектной переменной другого класса. Покажем разницу в распределении ОП в случае наследования и в случае моделирования. Пусть есть описания классов для заводской поликлиники: Класс человек = имя, фамилия, отчество, дата рождения. Класс работник = дата поступления, специальность, место работы. Класс больной = диагноз, дата начала болезни, лечение. Слева в таблице показаны фрагменты программы в предположении, что наследование есть, справа – наследования нет.
Наличие фактического наследования в VBA можно показать на примере элементов управления на форме. Все элементы коллекции Controls имеют координаты, размеры, и т.п. Поэтому если Вы опишите объектную переменную типа Control, то редактор будет подсказывать Вам эти свойства. Если же Вы опишите переменную типа Image, то увидите подсказку особых свойств элемента управления, например, Picture. В то же время к этому элементу можно обратиться двумя способами, видя при каждом разный набор свойств. Поместите на форму один элемент управления Image. Программа, вызываемая, например, по щелчку на форму, изменяет высоту и цвет фона последнего добавленного элемента, то есть Image. Dim s As Control, si As Image Set s = Controls(Controls.Count - 1) s.Height = s.Height + 10 Set si = s ' а можно и Set si=Controls(Controls.Count - 1) si.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) В программе используются две объектные переменные разных типов для того, чтобы редактор подсказывал имеющиеся свойства и методы. Это не обязательно. Следующий код тоже будет работать. Dim s As Control Set s = Controls(Controls.Count - 1) s.Height = s.Height + 10 s.BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) s.Picture = LoadPicture(ActiveDocument.Path & "\S.jpg") Если же последний элемент управления не является Image, то оба варианта кода приведут к ошибке. В первом случае сообщение об ошибке будет выдано при выполнении оператора присваивания Set si=s – несоответствие типов. А во втором случае при попытке обратиться к свойству BackColor будет сказано, что такого свойства нет (если его действительно нет у последнего элемента управления).
Дата добавления: 2014-01-04; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |