Типы параметров
Параметры могут иметь не только числовой, но и строковый и многие другие типы. Пример:
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("с: \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()
Показываем_два_фото "с: \temp\Rockies.bmp", "c: \temp\Porthole.bmp"
End Sub
Теперь мы понимаем, зачем в конце заголовка процедуры ставится пара скобок (). Это для параметров, буде они объявятся.
Задание 91: В задании 86 из 0 вы написали процедуру пользователя, которая перед показом очередной фотографии воспроизводит один и тот же музыкальный звук. Пусть теперь перед каждой фотографией будет свой звук. Для этого напишите процедуру с параметром.
Задание 92: В задании 90 вы написали процедуру пользователя, которая рисовала значок вашего друга. Перепишите ее, сделав процедурой с тремя параметрами: отступ, размер и цвет значка.
Задание 93: Среди графических методов Visual Basic нет методов "крестик" и "треугольник". Вы можете возместить этот недостаток, написав две соответствующие процедуры с тремя параметрами: координата х, координата у, размер.
Задание 94: Представьте себе куб, собранный из 16777216 кубиков — по числу цветов в Visual Basic. Его высота — 256 кубиков, ширина и толщина — тоже по 256 кубиков. Каждый кубик покрашен в свой цвет. Цвета не повторяются. Систему раскраски придумать легко. Например, слева направо растет от 0 до 255 красная составляющая в цвете кубиков, сверху вниз — зеленая, от нас вдаль — синяя. Так что самый левый верхний ближний кубик получается абсолютно черным, а самый правый нижний дальний кубик — абсолютно белым. Сразу все кубики видеть мы, конечно, не можем, но мы можем делать срез куба в любом месте параллельно любой из его граней, в результате чего на срезе будем видеть квадрат, состоящий из 256*256 разноцветных квадратиков. Вот эту задачу среза я бы и хотел вам предложить. Программа предлагает пользователю выбрать один из трех основных цветов (это удобно сделать через меню) и его насыщенность (число от 0 до 255). Этим определяется место среза. Затем программа чертит на форме этот разноцветный срез. Конечно, квадратики получатся очень маленькими, но это ничего.
Указание: Используйте процедуру с двумя параметрами: выбранный пользователем цвет (один из трех) и его насыщенность.
Кстати, догадайтесь, из каких цветов составлена главная диагональ куба, проведенная между двумя упомянутыми мной кубиками.
Мы с вами пока не умеем управлять временем. А это нам необходимо для работы с анимацией, а также для решения полезных и интересных задач.
Тип данных Date
Все вы видели часы в правой части панели задач Windows. Если на них поставить мышь, они покажут дату. Давайте сделаем что-нибудь получше, а именно — большие, красивые часы-будильник, а заодно и секундомер. Для этого нам нужно познакомиться с новым типом данных — типом даты и времени суток — Date. Вы пока знакомы с числовыми и строковым типами. Тип Date тоже, в принципе, числовой, но, сами понимаете, специфический. Если, например, в нем к 0:40 прибавить 0:40, то получится 1:20.
Когда вы пишете в окне кода программу, в ней встречаются числа, строки, а теперь вы должны научиться писать в программе дату и время суток. Чтобы Visual Basic понял, что перед ним число, вы просто пишете число, и он понимает. Чтобы Visual Basic понял, что перед ним строка, вы пишете строку и берете ее в двойные кавычки, и он понимает, что это строка. Чтобы Visual Basic понял, что перед ним дата или время суток, вы правильно записываете дату и время и заключаете их между значками #, и он понимает. Например, так: #2/16/2002#. Это 16 февраля 2002 года. Как правильно записывать дату и время в других случаях, вы поймете из примеров: