Програмирование на Visual Basic
списка.
. Комбинированный список типа 2, содержащий названия цветов автомобилей.
. Метка с названием “Цвет”, поясняющая назначение комбинированного
списка.
. Метка без названия для отображения цвета, который выбирается в
комбинированном списке.
. Комбинированный список типа 0, содержащий названия исполнения
автомобилей.
. Рамка с названием “Тип кузова”, объединяющая три переключателя для
выбора типа кузова: “Кабриолет”, “Седан”, “Универсал”.
. Рамка с названием “Мощность”, содержащая горизонтальную линейку
прокрутки для изменения мощности двигателя, две метки для отображения
мощности двигателя в киловаттах и лошадиных силах, две поясняющие
метки с названиями “кВт” и “Л.С.” (для горизонтальной линейки
прокрутки на этапе проектирования формы задаются значения свойств:
минимальное значение - 30 (min = 30), максимальное значение - 500 (max
== 500), текущее значение - 75 ( value = 75), малый шаг - 1
(SmallChange = 1), большой шаг - 10 (LargeChage = 10), недоступна
(enabled = false)) и командную кнопку “Зафиксировать”.
. Рамка с названием “Список фирм - дистрибьюторов”, объединяющая список,
флажок, метку с названием “Двухколоночный”, поясняющую назначение
флажка, и четыре командных кнопки (“Очистить список”, “Удалить
название “, “Добавить название”, “Зафиксировать”). [pic]
. Флажки с названиями “Дизель” и “Металлик”.
. Текстовое окно для описания модели с горизонтальной и вертикальной
линейками прокрутки.
. Метка с названием “Описание модели”.
. Командная кнопка “Конец”.
При проектировании формы значения свойств, определяющих основные цвета,
цвета фона, вид и размер шрифтов, размеры и расположение управляющих
элементов, задаются разработчиком или определяются по умолчанию.
Элементы управления и процедуры обработки событий должны обеспечить
следующую логику работы с формой.
[pic]
На этапе загрузки формы заполняются комбинированные списки “Фирма”, “Цвет”,
“Исполнение”, а также простой список “Фирм продавцов”:
|Список |Список |Список |Список |
|“Фирмы” |“Цвет” |“Исполнение|“Фирмы-продавц|
| | |” |ы” |
|Мерседес |Красный|Люкс |АЗР |
|Ауди |Белый |Стандарт |Musa Motors |
|Фольксваген|Черный |Минимум |ЛадаИнжинеринг|
|Шкода |Синий | |Sawa |
| | | | |
|Рено |Зеленый| |ЛогоВАЗ |
|Ситроен | | | |
| | | | |
|Лада | | | |
| | | | |
Заполнение производится в процедуре Form_Load с помощью методов Additem.
В той же процедуре задаются названия меток Label4 и Label5 (соответственно
значение мощности в киловаттах и в лошадиных силах). Эти названия должны
изменяться соответственно значению текущего положения движка линейки
прокрутки. Для преобразования мощности из киловатт в лошадиные силы и
обратно надо использовать соотношение: 1Л.С.=735,499 Вт.
Для определения названия метки необходимо преобразовать численное значение
свойства HScrolll. Value в текст с использованием встроенной функции Str$
(выражение Str$(HScrolll. Value)).
В таблицах приведены операторы процедур обработки событий примера и
поясняющие их комментарии.
|Процедура |Комментарии |
|Sub Form Load() | |
| | |
|LabeM.Caption = |Определение названия |
|Str$(HScrolll. Value *|(свойство |
|735.499 / 1000) | |
|Label5.Caption = |Caption) метки Label4 |
|Str$(HScrolll. Value) |Определение названия |
| |метки Label5 |
|Combo 1.Add Item |Combol - имя списка |
|“Мерседес” |“Фирмы” |
|Combo 1.Add I tern |Additem - метод, |
|“Ауди” |осуществляющий |
|Combo 1.Add Item |добавление элементов в |
|“Фольксваген” |список с |
|Combol.Additem “Шкода”|указанным именем |
|Combo 1.Additem “Рено”|“Мерседес” - Значение |
| |добавляемого |
|Combol.Additem |элемента |
|“Ситроен” | |
|Combol.Additem “Лада” | |
| |Метод Additem одинаково|
| |действует |
|Combo2.AddItem |и для комбинированных |
|“Красный” |списков и |
|Combo2.AddItem “Белый”|для простых |
|Combo2.AddItem | |
|“Черный” | |
|Combo2.AddItem “Синий”| |
|Combo2.AddItem | |
|“Зеленый” | |
|СотЬоЗ.Additem “Люкс” | |
| | |
|Combo3.AddItern | |
|“Стандарт” | |
|Combo3.AddItem | |
|“Минимум” | |
|Listl.Additem “Musa | |
|Motors” | |
|Listl.Additem | |
|“ЛадаИнжинеринг” | |
|Listl.Additem “Sawa” | |
|Listl.Additem “A3P” | |
|Listl.Additem | |
|“ЛогоВАЗ” | |
|End Sub | |
| | |
В результате выполнения процедуры выводится форма (рис. 2.20). На форме
активны только четыре элемента: метка с названием “Фирма”, командная кнопка
“Конец”, текстовое окно “Описание модели” и комбинированный список “Фирма”.
При щелчке по списку он разворачивается и из него можно выбрать название
фирмы-производителя. После выбора фирмы её название заносится в текстовое
окно “Описание модели”, комбинированный список фирм становится неактивным
вместе с меткой “Фирма”, а метка “Цвет”, комбинированный список для выбора
цветов автомобиля и метка отображения выбранного цвета становятся
активными.
Для выполнения указанных действий процедура Combo l_Click() (обработка
события щелчок по списку) содержит следующие операторы:
|Процедура |Комментарии |
|Sub Combo lClick() |Деактивизация |
| |комбинированного |
|Combol. Enabled == |списка путем присвоения|
|False |значения |
|Label 1. Enabled = |False( ложь ) свойству |
|False |Enabled |
| |(Активность) |
| | |
| |Добавление к значению |
| |текстовой |
|Text 1.Text = Text |строки “Описание |
|1.Text + |модели” |
|Combol.Text + Chr$(13) |значения текущего |
|+ Chr$(10) |(выбранного) |
| |элемента из |
| |комбинированного |
| |списка “Фирмы”. “+” - |
| |операция |
| |сцепления строк |
| |Chr$(10), Chr$(13) - |
| |функция, ре |
| |зультатом вычисления |
| |которой |
| |является символ с кодом|
| |10 и 13 |
| |13, 10 - комбинация |
| |символов для |
| |перевода курсора в |
| |начало следую |
| |щей строки текстового |
| |окна. |
| |Активизация |
| |комбинированного |
| |списка “Цвета” и его |
| |метки |
|Combo2. Enabled = True | |
| | |
|Label2. Enabled = True | |
|End Sub | |
| | |
После завершения выполнения данной процедуры на форме изменятся элементы
(рис. 2.21). [pic]
Рис. 2.21
[pic]
Рис. 2.22
На форме активны только четыре элемента: метка с названием “Цвет”,
командная кнопка “Конец”, комбинированный список для выбора цвета и
текстовое окно “Описание модели”. При щелчке по списку он разворачивается и
из него можно выбрать цвет для машины.
После выбора цвета его название заносится в текстовое окно “Описание
модели”, комбинированный список цветов становится неактивным вместе с
меткой “Цвет”, а метка “Исполнение” и комбинированный список для выбора
варианта исполнения автомобиля становятся активными (рис. 2.22).
Для выполнения указанных действий процедура Combo2_Click() (обработка
события “Щелчок по списку”) содержит следующие операторы:
[pic] Коды цветов приведены в следующей таблице:
|Цвет |Кол цвета |
| |&Н 000000 FF& |
| | |
| |&HOOFFOOOO& |
| |&НООСОСОСО& |
| | |
| |&HOOOOFFOO& |
| | |
|Голубой |&HOOFFFFOO& |
|Черный |&НООООООООО& |
|Белый |&HOOFFFFFF& |
|Желтый |&HOOOOFFFF& |
Коды цветов заданы в шестнадцатеричной системе счисления, в которой для
представления чисел используется 16 символов: цифры от 0 до 9 и буквы от А
(эквивалент 10) до F (эквивалент 15). Значимость каждой п-й позиции в
шестнадцате-ричном числе возрастает пропорционально степени \6”n. Например,
десятичное число 419 в шестнадцатеричном представлении записывается 1АЗ:
1*16”2 + 10*16”! + 3*16^0 = 419.
В двоичной системе число 15 записывается 1111, т.е. любой символ
шестнадцатеричного числа можно кодировать четырьмя битами. Память
компьютера разделена на байты (1 байт равен 8 битам) и каждый байт может
хранить любое из 256 (16^1) шестна-дцатеричных чисел: от 0 до FF. Такое
компактное представление информации на основе шестнадцатеричной системы
счисления обусловливает ее широкое использование в программировании.
Шестнадцатеричному числу в Visual Basic предшествуют символы &Н.
Как видно из рис. 2.22, на форме активны четыре элемента:
комбинированный список, соответствующий метке с названием “Исполнение”,
командная кнопка “Конец” и текстовое окно “Описание модели”. При щелчке по
элементу комбинированного списка можно выбрать соответствующий вариант
исполнения для машины. После выбора варианта исполнения его название
заносится в текстовое окно “Описание модели”, комбинированный список
становится неактивным вместе с меткой, а рамка с названием “Тип кузова” и
три переключателя внутри неё - активными (рис. 2.23). Для выполнения
указанных действий процедура Combo3_Click() (обработка события “Щелчок по
списку”) содержит следующие операторы:
[pic]
В результате выполнения данной процедуры на форме произойдут изменения,
показанные на (рис. 2.23). На форме активны шесть элементов: кнопка
“Конец”, рамка “Тип кузова”, текстовое окно “Описание модели” и три
переключателя в рамке.
[pic]
Рис. 2.23 [pic]
В результате форма примет вид, показанный на рис. 2.25. На форме активны:
текстовое окно с названием “Описание модели”, рамка “Список фирм-
дистрибъютеров”, командная кнопка с названием “Очистить список”, командная
кнопка с названием “Добавить название”, текстовая строка для добавления
нового имени в список продавцов и кнопка “Конец”.
При щелчке по флажку “Двухколоночный” список в зависимости от состояния
флажка преобразуется в двухколоночный и обратно. Реализующая процедура
обработки события Check3_Click() содержит следующие операторы:
|Процедура |Комментарии |
|Sub Check3 Click() |Свойство Value элемента |
|IfCheck3.Value = 0 |Check равно 0, если |
|Then List!.Columns = |флажок не взведен. В |
|1 Else List 1.Columns|зависимости от значения |
|= 2 End If |этого свойства |
|End Sub |определяется свойство |
| |списка.(Listl.Columns = |
| |1 - список |
| |одноколоночный, |
| |Listl.Columns = 2 |
| |-список двухколоночный) |
При щелчке по кнопке “Очистить список” из списка фирм удаляются все
элементы с помощью метода Clear, а затем кнопка деактивизируется.
Реализующая процедура Command l_Click() содержит следующие операторы:
|Процедура |Комментарии |
|Sub Command I |Очистка списка Деактивация|
|ClickQ List [.Clear|кнопки очистки списка |
|Command L Enabled =|Деактивация кнопки |
|False |удаления элемента списка |
|Command3.Enabled = | |
|False End Sub | |
[pic]
Рис. 2.25
При щелчке по кнопке “Добавить элемент” содержимое текстовой строки
добавляется в список с помощью метода Additem. Список обладает свойством
автосортировки (добавление происходит в соответствии с упорядоченностью по
алфавиту). Происходит очищение текстовой строки и активизация кнопок
“Удалить элемент” и “Очистить список”. Это обеспечивается следующими
операторами:
|Процедура |Комментарии |
|Sub CoiTimand4Click() |Добавление нового имени|
|Listl.AddItem |в список Очистка |
|Text2.Text Text2.Text |текстовой строки. |
|= “” Command [.Enabled|Активизация кнопок |
|= True Command3. |“Удалить элемент” и |
|Enabled = True End Sub|“Очистить список” |
Для фиксации названия фирмы или удаления его из списка требуется
предварительно щелкнуть мышью по элементу списка. При обработке этого
события проверяется наличие элементов в списке и активизируются кнопки
“Зафиксировать”, “Удалить элемент” и “Очистить список”. Это обеспечивается
следующими операторами:
|Процедура |Комментарии |
|Sub Listi Click() If |Свойство Listlndex |
|List 1. Listi ndex >= 0|равно номеру |
|Then |выделенного элемента. |
|Command3.Enabled = True|Если ни один элемент не|
|Command6. Enabled = |выделен, то его |
|True End If End Sub |значение - 0 |
| |Активизация кнопки |
| |удаления элемента и |
| |фиксации элемента |
В результате обработки события “щелчок мыши” по элементу списка форма
примет вид на рис. 2.26.
[pic]
Рис. 2.26
При щелчке по кнопке “Удалить название” удаляется текущий выбранный элемент
из списка, деактивируется кнопка удаления списка и, при условии отсутствия
других элементов в списке, деактивируется кнопка “Очистить список”.
Проверка на пус
тоту списка осуществляется с помощью свойства ListCount,
значение которого равно числу элементов в списке. Это обеспечивается
следующими операторами:
|Процедура |Комментарии |
|Private Sub Command3 |Проверка на выбор |
|Clic() If Listi. Listi |элемента Удаление |
|ndex >= 0 Then List 1. |элемента из списка |
|Remove Item List 1. |Деактивация кнопки |
|List! ndex |удаления элемента |
|Command3.Enabled = |списка, так как нет |
|False End If |выделенных элементов в |
|If Listi. ListCount = 0|списке Проверка списка |
|Then Command [.Enabled |на пустоту. Если список|
|= False End If End Sub |пуст, то деактивация |
| |кнопки очистки списка |
При щелчке по кнопке “Зафиксировать” выбранное название фирмы помещается в
текстовое окно “Описание модели”, деактивизируется рамка с названием
“Список фирм-дистрибьюторов” и все управляющие элементы, лежащие внутри
рамки. Процедура обработки события щелчка по кнопке “Зафиксировать” имеет
следующий вид:
[pic]
В результате выполнения этой процедуры форма примет вид, показанный на рис.
2.27. [pic]
Рис. 2.27
На форме остались активными только два управляющих элемента: командная
кнопка “Конец” и тестовое окно “Описание модели”. В текстовое окно можно
добавлять собственный текст и редактировать имеющийся.
При нажатии на кнопку “Конец” работа программы завершается. Это
обеспечивается операторами:
|Процедура |Комментарии |
|Sub Command2 Click() |End - оператор завершения|
|End End Sub |программы |
Тексты всех процедур обработки событий примера:
Private Sub Check2_Click() If Check2.Value = 1 Then
Textl.Text = Textl.Text + Check2.Caption + Chr$(13) + Chr$(10)
Check2.Enabled = False End If End Sub
Private Sub Check3_Cli.ck() If Check3.Value = 0 Then
Listi.Columns = 1 Else
Listi.Columns = 2 End If End Sub
Private Sub Check4_Click () If Check4.Value = 1 Then
Check4.Enabled = False
Textl.Text = Textl.Text + Check4.Caption + Chr$(13) + Chr$(10) End If End
Sub
Private Sub Combol_Click() Combol.Enabled = False
Textl.Text = Textl.Text + Combol.Text + Chr$(13) + Chr$(10)
Labell.Enabled = False Combo2.Enabled = True Label2.Enabled = True End Sub
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
|