Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование для начинающих. (Visual Basic-6.0) #2


Информационный Канал Subscribe.Ru


Здравствуй уважаемый подписчик! Как и обещал сегодня в номере:
Визуальное программирование
Объекты
Свойства объектов
Свойства и методы объектов
События и их обработка

Визуальное программирование


В 90-х годах в мире персональных компьютеров опять произошли важные изменения. Компьютеры приобрели графическое управление. Раньше ими в основном управляли с помощью клавиатуры: на ней набирали команды, с клавиатуры в компьютер вводили тексты программ. Разумеется, компьютеры и тогда могли воспроизводить на экране графические изображения, но это было именно умение, а не способ управления. Телевизор, например, прекрасно воспроизводит изображения, но способ управления им был и остается кнопочным. С середины 90-х годов системы управления большинства компьютеров стали графическими. То, что мы видим на экране, это не просто картинки — многие из них служат графическими элементами управления — на них можно навести указатель мыши, щелкнуть на ее кнопке и компьютер ответит на этот управляющий сигнал. Разыщите на экране значок под названием Мой компьютер и щелкните на нем дважды левой кнопкой мыши. Вы увидите, как на экране откроется окно Мой компьютер. То, что мы сделали, это и есть графическое управление. Нам ведь не пришлось ничего вводить с клавиатуры, не правда ли? С появлением графических систем управления компьютерами изменился и метод разработки программ. Он тоже стал графическим или, говоря по научному — визуальным. С помощью мыши мы будем выбирать готовые строительные блоки для будущих программ (эти блоки называют компонентами или объектами), а потом точно так же с помощью мыши будем настраивать их по своему вкусу. И лишь в очень редких случаях, когда нам чего -то будет не хватать, придется ввести несколько слов с клавиатуры.

Объекты


В газетах время от времени пишут, что в каком-то городе видели НЛО — неопознанный летающий объект. «Мигая разноцветными огнями и противно жужжа, НЛО удалился за горизонт». В название входит слово объект, так давайте подумаем, о чем же тут идет речь. Ну, неопознанный — это значит, что никто так и не знает, что это на самом деле. Летающий — это значит, что НЛО видели в воздухе. А вот что же такое объект? Так как про НЛО мы почти ничего не знаем, можно попытаться выяснить, что такое объект вообще. Во-первых, объект — это нечто конкретное. Мы можем сказать, где он начинается и где кончается, что относится к объекту, а что нет. Во-вторых, он обладает некоторым внутренним устройством, которое мы можем и незнать. В-третьих, объект характеризуется некоторым поведением, за которым можно наблюдать, а иногда и влиять на него. Согласитесь, что такое описание не выглядит ни очень понятным, ни очень полезным, однако в жизни нас окружает множество самых разных вещей, которые ему соответствуют. Все эти вещи нам привычны, и мы пользуемся ими, не задумываясь. Например, утром нас будит будильник. Чтобы остановить противный звонок, надо хлопнуть по кнопке, а чтобы на следующее утро снова его услышать — повернуть ручку завода звонка. Скажем так: чтобы завести объект «будильник», надо повернуть объект «ручка». Чтобы выключить объект «будильник», надо нажать объект «кнопка». Объектный подход полезен тем, что объекты можно рассматривать как целые, законченные вещи, не вдаваясь в то, как они устроены. Чтобы пользоваться будильником, не надо знать, из каких колесиков и пружинок он состоит и как они связаны друг с другом. Если мы знаем, как заводить будильник, как узнавать по нему время, как управлять звонком, то мы знаем о будильнике все, что о нем стоит знать пользователю. Оглянитесь вокруг. Нас окружают тысячи объектов, про которые мы не знаем, как они устроены, но это нам вовсе не мешает жить и учиться. Вот телевизор. Мы знаем, как его включить, или выключить, или переключить на другую программу. Вот холодильник. Мы знаем, что внутри у него всегда холодно, так что продукты там не портятся. Вот продукты, которые лежат в холодильнике. Мы знаем, что их можно есть, хотя некоторые надо сначала приготовить. А вот наши друзья. Мы знаем, что один из них любит футбол, другой любит рисовать, а третий готов дни и ночи просиживать в кино. Почему они такие разные, мы не знаем, но это не мешает нам с ними общаться.

Свойство объектов


Слово «объект» — очень удобно, чтобы кратко выразить то, с чем мы часто встречаемся в жизни, не вникая во внутреннее устройство и принцип действия, но это совсем не значит, что нас эти объекты вообще не интересуют. Наоборот, очень даже интересуют. Если, например, надо забить объект «гвоздь» в объект «стена», мы непременно должны оценить свойства этих объектов. Если стена деревянная, то гвоздь должен быть железным, и никак не наоборот. Все объекты обладают свойствами, причем не какими попало, а различимыми. Если мы не различаем свойства насекомых, летающих над нами, то это не объекты, а просто насекомые. Если же мы различаем их свойства, то понимаем, что перед нами муха, комар, бабочка или пчела, и в каждом, случае ведем себя по-разному. Свойства объектов неразрывно связаны с самими объектами. Не может быть свойства без объекта, как не бывает улыбки без лица. Давайте попробуем дать насекомым несколько оценок, исходя из их свойств. Оценивать их мы будем не так, как в школе (от единицы до пятерки), а так, чтобы оценка выражалась одним байтом (от 0 до 255).
свойствомоя оценкаВаша оценка
Бабочка.укус0?
Муха.укус20?
Комар.укус60?
Пчела.укус255?
Бабочка.Окрас255?
Муха.Окрас20?
Комар.Окрас0?
Пчела.Окрас60?

Свойство и методы объектов


В обычной жизни мы используем множество разнообразных объектов, не зная, как они устроены. Более того, куда не следует, лучше и вообще не лазить: поковырявшись отверткой в телевизоре, можно полностью вывести его из строя. Но мы можем воздействовать на свойства объектов. Возьмем, к примеру, будильник. Главное свойство телевизора — способность воспроизводить на экране телепередачи. Сведения о том, какую программу показывать, хранятся внутри телевизора. Мы не знаем и не хотим знать, как именно. Нам требуется лишь удобная возможность переключить телепрограмму, когда нас не устраивает ее содержание. Средства для этого могут быть разными. У обычного домашнего телевизора переключение программ может производиться кнопками на лицевой панели или с помощью пульта дистанционного управления. В конце концов, если нас никакая телепрограмма не устраивает, можно подключить видеомагнитофон и еще раз просмотреть программу, записанную на прошлой неделе, но для подключения видеомагнитофона телеприемник должен обладать специальными свойствами, например специальным разъемом и кабелем. Программные объекты также имеют свойства — это те их параметры, которые мы можем выбирать при создании программы и менять при ее работе. Прочее устройство объекта для нас закрыто, и у нас просто нет возможности сделать что-то не то. Для проверки и изменения свойств объекта используются специальные процедуры — методы, также входящие в состав объекта. Можно сказать, что, для того чтобы что-то сделать со свойствами объекта, надо попросить у самого объекта, чтобы он их нам сообщил или изменил. Число свойств у телевизора относительно невелико. Объекты в программах могут иметь намного больше свойств. Например, командная кнопка в окне имеет размер, положение, цвет, текст подписи и другие свойства. Мы можем работать только с теми свойствами, которые нам нужны. Для прочих свойств можно один раз задать необходимые значения при создании программы, после чего забыть о них. Объект, который использовался в одной программе, можно использовать в другой программе. При этом:
1- добавление объекта не нарушает работу всех прочих объектов, имеющихся в программе;
2- поведение вставляемого объекта не изменяется из-за наличия других объектов.
Допустим, программист написал программу, описывающую танковое сражение. В одном сражении может принимать участие несколько десятков танков. Несмотря на то, что поведение всех танков описывает одна и та же процедура, каждый танк является самостоятельным объектом, и программа управляет им индивидуально. Каждый из этих объектов имеет следующие свойства.
свойствоРазличия
ИзображениеОдинаково для всех
Бортовой номерРазличен для всех
Фамилия командираРазлична для всех
Техническое состояниеВ начале игры одинаково для всех, далее различается
БоекомплектВ начале игры одинаков для всех, далее различается
Положение на экранеРазлично для всех
Звук выстрелаОдинаков для всех
Звук при движенииОдинаков для всех
Теперь допустим, что программист решил ввести в игру кроме танков еще и артиллерийские орудия и бронетранспортеры. Значит ли это, что для новых классов объектов он должен заново переписывать все процедуры? Вовсе нет: достаточно только поменять некоторые свойства, например так.
свойствоТанкОрудиеБронетранспортер
Стоимость(1)2403545
Скорость40060
Броня120050
Скорострельность1224
Бронебойность16018025
Изображение(2)tank.bmpart.bmpbtr.bmp
Звук выстрела(2)tank.wavart.wavbh-.wav
(1)Во многих игровых программах учитывается стоимость боевых единиц в неких условных единицах, чтобы игрок не увлекался составлением своих частей из самых лучших образцов техники.
(2)Здесь в качестве свойства выступает имя файла, в котором хранится заранее заготовленный рисунок или записанный звук.

События и их обработка


Мы пока что упустили из виду еще один важный факт. Говоря о будильнике, мы не обратили внимания на то, что он срабатывает без нашего вмешательства — мы в это время спим. Это происходит из-за того, что наступает то время, на которое будильник был настроен. Для будильника этот факт можно рассматривать как событие. Способность реагировать на определенные события — это разновидность свойства. При возникновении события производится его обработка, для будильника это — включение сигнала. Объекты, используемые в компьютерных программах, также могут реагировать на события. При возникновении события происходит автоматический запуск специального метода — обработчика данного события. Как правило, разные события вызывают разную реакцию, хотя вполне допустимо, чтобы некоторым событиям соответствовал один и тот же обработчик. Таким образом, в состав программных объектов еще входят подпрограммы-методы, обрабатывающие события. С помощью событий обеспечивается взаимодействие программы с пользователем. Когда мы перемещаем мышь или нажимаем клавишу, это регистрируется элементом управления как событие, а необходимые действия выполняются в методе-обработчике. События, связанные с действиями пользователя, называются пользовательскими. Кроме пользовательских событий в программах происходят так называемые программные события. Например, когда танк наезжает на мину, срабатывает метод-обработчик объекта «мина». По этой подпрограмме мина изменяет свое состояние (перестает существовать), а объект танк получает событие «подрыв». В результате срабатывает метод-обработчик объекта «танк». Эта подпрограмма рассчитывает величину повреждения и может привести к уничтожению объекта «танк» в программе, а может только обездвижить его — тогда свойство «скорость» объекта «танк» получит значе ние 0. Вы чувствуете, что в то время, кок но экране разворачиваются <— грандиозные сражения, в программах происходят простейшие операции: запускаются процедуры-обработчики событий, изменяются свойства объектов, возникают новые события, запускаются новые обработчики и так долее? Для таких событий, как выстрел из пушки, подрыв танка, встреча снаряда с преградой, методы обработки записывает сам программист — это требует ручной работы. То же относится и к таким типовым объектам, как командная кнопка. Для нее основное событие — это щелчок на ней. Как мы знаем, последствия такого щелчка могут быть любыми — все зависит от самой кнопки. Для того чтобы задать реакцию на щелчок, программисту тоже приходится создавать обработчик щелчка на кнопке. Событийный механизм управления, присущий системе Windows, передается и всем программам, работающим в этой системе. Чтобы программа могла выполнять то, что хочет ее пользователь, а не только то, что задумал ее создатель, она должна постоянно проверять состояние своих элементов управления. Конкретные события соответствуют типичным приемам управления. Например, кнопки, флажки и переключатели могут реагировать на щелчок мыши. Программы способны также отличить одинарный щелчок от двойного и используют в этих случаях разные обработчики. Помните, как при наведении указателя мыши на кнопку Пуск появилась всплывающая подсказка? Наведение указателя тоже может рассматриваться как событие, на которое объект способен реагировать. Для сложных элементов управления иногда требуется отдельно обрабатывать нажатие и отпускание кнопки мыши. При этом также проверяется, какая именно кнопка нажата или отпущена и не были ли при этом нажаты клавиши SHIFT, CTRL или ALT, способные изменить способ выполнения операции.

Повторим главное


Итак, при объектно-ориентированном программировании данные и процедуры для их обработки, которые называют методами, объединяют вместе и называют объектами. Изменяют эти данные путем настройки или изменения свойств объекта. Записывать программу в виде набора последовательно выполняемых команд в этом случае неудобно. Вместо этого используют событийный механизм управления, при котором процедуры-обработчики вызываются при возникновении событий. Все действия пользователя обычно рассматриваются как события, связанные с конкретными элементами управления. Это и позволяет нам управлять компьютерными программами.
В следующем номере вы познакомитесь с визуальной средой разработки проложений. Кто еще не имеет на своей ЭВМ программного пакета Visual Basic 6.0 настоятельно рекомендую приобрести
с уважением Alex III

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное