Читайте также:
|
|
Наша цель - процедуры с параметрами. Данный раздел - подготовка к взятию этой крепости.
Вернемся к задаче из 10.1 о фотоальбоме со значками. Вспомним, что мы написали процедуру пользователя для рисования значка. Вот она:
Private Sub Рисуем_мой_значок()
Picture1.Line (100, 100)-(300, 300), vbBlue, B
Picture1.Line (100, 100)-(300, 300), vbBlue
Picture1.Line (100, 300)-(300, 100), vbBlue
End Sub
Значок рисуется в левом верхнем углу фото с отступом в 100 твипов как от левого края фото, так и от верхнего. Предположим, вам разонравился такой отступ и вы решили сделать его поменьше, скажем, 50. Вам нужно в программе в 6 местах поменять число 100 на 50. Вот то-то и неудобно, что в 6, а не в одном. Слишком много труда. В нашей программе это, конечно, пустяк, а вот в больших и сложных программах одна и та же величина может встречаться сотни раз, и чтобы ее изменить, придется вносить сотни исправлений.
Посмотрим, как нам помогут переменныевеличины. Придумаем переменную величину с именем Otstup. Теперь напишем вариант той же процедуры, но с использованием переменной величины:
Dim Otstup As Integer
Private Sub Рисуем_мой_значок()
Otstup = 100
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue, B
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue
Picture1.Line (Otstup, 300)-(300, Otstup), vbBlue
End Sub
Теперь для того, чтобы изменить отступ, достаточно заменить число только в одном месте.
Вторая причина, по которой мы используем переменные, та, что с ними программа становится понятнее, так как имена переменным мы придумываем, исходя из их смысла.
Будем дальше улучшать нашу процедуру. Теперь вы легко можете управлять отступом, но вот беда - правый нижний угол значка остается всегда в одном и том же месте и поэтому размер значка уменьшается с увеличением отступа, а при отступе = 300 значок вообще превращается в точку. Вам хочется так же легко и удобно управлять размером значка, как и отступом. Вы замечаете, что размер квадратного значка равен разнице координат в скобках операторов Line. Вы придумываете переменную с именем Razmer и переписываете программу:
Dim Otstup As Integer
Dim Razmer As Integer
Private Sub Рисуем_мой_значок()
Otstup = 100
Razmer = 200
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), vbBlue, B
Picture1.Line (Otstup, Otstup)-(Otstup + Razmer, Otstup + Razmer), vbBlue
Picture1.Line (Otstup, Otstup + Razmer)-(Otstup + Razmer, Otstup), vbBlue
End Sub
Последнее, что вам хочется, это управлять цветом. Нет проблем:
Dim Otstup As Integer
Dim Razmer As Integer
Dim Tsvet As Long
Private Sub Рисуем_мой_значок()
Otstup = 100
Razmer = 200
Tsvet = vbBlue
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
Заметьте, что Tsvet я объявил, как Long, а то 16 миллионов в Integer не уместятся.
Задание 90: Помогите вашему другу менять при помощи переменных отступ, размер и цвет его значка.
Константы
Константами называются те конкретные значения величин, которые мы видим в программе. Например, во фрагменте
a = 1 + 0.25
b = "Амазонка"
Debug.Print "Волга", 10
Form1.BackColor = 15767511
If a > 3 Then Cls
константы это 1 0.25 "Амазонка" "Волга" 10 15767511 3.
Если какая-нибудь константа встречается в программе несколько раз, то удобно, как я уже говорил в предыдущем разделе, придумать ей имя и обозначать этим именем.
Вернемся к примеру из предыдущего раздела. Там мы объявили переменную Otstup и везде в процедуре стали писать вместо константы 100 имя этой переменной. Программист имеет право вместо оператора объявления
Dim Otstup As Integer
написать другой оператор объявления:
Const Otstup = 100
Тогда процедура изменит свой вид:
Const Otstup = 100
Private Sub Рисуем_мой_значок()
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue, B
Picture1.Line (Otstup, Otstup)-(300, 300), vbBlue
Picture1.Line (Otstup, 300)-(300, Otstup), vbBlue
End Sub
В чем разница? В первом случае величина Otstup - переменная величина. Во втором случае величина Otstup объявлена константой, а это значит, что ей запрещено менять свое значение 100, присвоенное ей при объявлении. При попытке изменить значение константы Visual Basic выдаст сообщение об ошибке. Например, ошибкой завершится выполнение такой программы:
Const a = 5
Private Sub Command3_Click()
a = a + 2
End Sub
Хорошо это или плохо? Это плохо там, где величина по смыслу задачи должна менять свое значение, и хорошо там, где не должна. Например, если в программе
Const Пи = 3.14
Private Sub Command4_Click()
r = 50
Длина_окружн = 2 * Пи * r
Площадь_круга = Пи * r ^ 2
End Sub
мы по небрежности где-нибудь напишем оператор типа Пи = 2.87, то Visual Basic выдаст сообщение об ошибке и мы будем этому рады, так как число Пи – очень известная константа, равная 3.14, и никто не имеет права менять ее значение.
Таким образом, при помощи объявления констант мы повышаем надежность программирования.
Обратите внимание, что термином "константа" мы обозначаем два близких понятия: с одной стороны число 100, строку "Волга" и т.п., а с другой стороны имена Otstup, Пи и т.п., обозначающие эти величины. Не думаю, что в будущем эта путаница принесет нам какой-нибудь вред.
Кроме перечисленных выше констант существует еще большое число так называемых внутренних констант Visual Basic. Объявлять их не надо, ими можно сразу пользоваться, если знать их имена и смысл. Например, такими константами являются названия цветов - vbRed, vbBlack и т.п. Каждая из таких констант имеет конкретное численное значение (например, vbRed=255), но названия запоминаются легче, чем числа. Имена, смысл и значение внутренних констант вы найдете в Object Browser.
Дата добавления: 2015-11-16; просмотров: 58 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Операторы Stop, End и Exit Sub | | | Процедуры с параметрами |