КАТЕГОРИИ: Архитектура-(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) |
Рисуем_мой_значок 200, 400, RGB(100, 250, 150)
Рисуем_мой_значок 100, 200, vbBlue Private Sub Рисуем_мой_значок (Otstup As Integer, Razmer As Integer, Tsvet As Long) Как видите, здесь задаются и порядок параметров и их тип. Вот как компактно теперь выглядит наша программа. Это и есть ее окончательный вид, к которому мы стремились на протяжении этой главы: Private Sub Рисуем_мой_значок (Otstup As Integer, Razmer As Integer, Tsvet As Long) Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), Tsvet, B Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), Tsvet Picture1.Line (Otstup, Otstup + Razmer)-(Otstup + Razmer, Otstup), Tsvet End Sub
Private Sub Command1_Click() Picture1.Picture = LoadPicture("c:\temp\Rockies.bmp") Picture1.Print, "21.07.2001" End Sub
Private Sub Command2_Click() Picture1.Picture = LoadPicture("c:\temp\Porthole.bmp") Picture1.Print, "28.07.2001" End Sub Обратите внимание, что мы убрали за ненадобностью фрагмент объявлений: Dim Otstup As Integer Dim Razmer As Integer Dim Tsvet As Long так как эти переменные уже объявлены в заголовке процедуры. Наткнувшись в процессе выполнения программы на обращение к процедуре (Рисуем_мой_значок 100, 200, vbBlue), Visual Basic присваивает параметрам, приведенным в заголовке процедуры (Otstup, Razmer, Tsvet), указанные значения, а затем выполняет тело процедуры. В качестве значений параметров в обращениях к процедурам можно писать не только константы, но и переменные, и выражения. Например, вместо Рисуем_мой_значок 100, 200, vbBlue можно было написать a=100 Рисуем_мой_значок a, 2 * a, vbBlue Типы параметров Параметры могут иметь не только числовой, но и строковый и многие другие типы. Пример: Private Sub Печатаем_3_раза(Что_нибудь As String) Print Что_нибудь Print Что_нибудь Print Что_нибудь End Sub
Private Sub Command1_Click() Печатаем_3_раза "Кто там? - Это почтальон Печкин!" Печатаем_3_раза "Дядя Федор" End Sub Здесь вы видите процедуру пользователя Печатаем_3_раза и ее параметр - строковую переменную с именем Что_нибудь. При нажатии на кнопку Command1 программа начинает работать и печатает следующий текст:
Кто там? - Это почтальон Печкин! Кто там? - Это почтальон Печкин! Кто там? - Это почтальон Печкин! Дядя Федор Дядя Федор Дядя Федор
Вот другой пример. Для начала отметим, что величины, которые указываются в скобках функций (например, в Round(5.82716, 3) или LoadPicture("c:\temp\Rockies.bmp")), тоже называются параметрами, хотя их называют также аргументами. Здесь в функции LoadPicture адрес файла взят в кавычки, значит этот параметр является строкой. Можно написать такую программу, которая по нажатии на кнопку Command1 показывает сразу два фото:
Private Sub Показываем_два_фото (Фото_1 As String, Фото_2 As String) Picture1.Picture = LoadPicture (Фото_1) Picture2.Picture = LoadPicture (Фото_2) End Sub
Private Sub Command1_Click() Показываем_два_фото "c:\temp\Rockies.bmp", "c:\temp\Porthole.bmp" End Sub Теперь мы понимаем, зачем в конце заголовка процедуры ставится пара скобок (). Это для параметров, буде они объявятся. Дальше о процедурах вы прочтете в Глава 17.
Задание 91: В задании 86 из 10.1 вы написали процедуру пользователя, которая перед показом очередной фотографии воспроизводит один и тот же музыкальный звук. Пусть теперь перед каждой фотографией будет свой звук. Для этого напишите процедуру с параметром. Задание 92: В задании 90 вы написали процедуру пользователя, которая рисовала значок вашего друга. Перепишите ее, сделав процедурой с тремя параметрами: отступ, размер и цвет значка. Задание 93: Среди графических методов Visual Basic нет методов "крестик" и "треугольник". Вы можете возместить этот недостаток, написав две соответствующие процедуры с тремя параметрами: координата_х, координата_у, размер. Задание 94: Представьте себе куб, собранный из 16777216 кубиков - по числу цветов в Visual Basic. Его высота - 256 кубиков, ширина и толщина - тоже по 256 кубиков. Каждый кубик покрашен в свой цвет. Цвета не повторяются. Систему раскраски придумать легко. Например, слева направо растет от 0 до 255 красная составляющая в цвете кубиков, сверху вниз - зеленая, от нас вдаль - синяя. Так что самый левый верхний ближний кубик получается абсолютно черным, а самый правый нижний дальний кубик - абсолютно белым. Сразу все кубики видеть мы, конечно, не можем, но мы можем делать срез куба в любом месте параллельно любой из его граней, в результате чего на срезе будем видеть квадрат, состоящий из 256*256 разноцветных квадратиков. Вот эту задачу среза я бы и хотел вам предложить. Программа предлагает пользователю выбрать один из трех основных цветов (это удобно сделать через меню) и его насыщенность (число от 0 до 255). Этим определяется место среза. Затем программа чертит на форме этот разноцветный срез. Конечно, квадратики получатся очень маленькими, но это ничего.
Указание: Используйте процедуру с двумя параметрами: выбранный пользователем цвет (один из трех) и его насыщенность. Кстати, догадайтесь, из каких цветов составлена главная диагональ куба, проведенная между двумя упомянутыми мной кубиками.
Глава 11. Работа с таймером, временем, датами Мы с вами пока не умеем управлять временем. А это нам необходимо для работы с анимацией, а также для решения полезных и интересных задач, приведенных в этой главе. Собственно, все игры с одновременным движением персонажей делаются с помощью таймера. Венец главы - создание вашего первого реального проекта "Будильник-секундомер".
Дата добавления: 2014-12-23; Просмотров: 380; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |