бесплано рефераты

Разделы

рефераты   Главная
рефераты   Искусство и культура
рефераты   Кибернетика
рефераты   Метрология
рефераты   Микроэкономика
рефераты   Мировая экономика МЭО
рефераты   РЦБ ценные бумаги
рефераты   САПР
рефераты   ТГП
рефераты   Теория вероятностей
рефераты   ТММ
рефераты   Автомобиль и дорога
рефераты   Компьютерные сети
рефераты   Конституционное право
      зарубежныйх стран
рефераты   Конституционное право
      России
рефераты   Краткое содержание
      произведений
рефераты   Криминалистика и
      криминология
рефераты   Военное дело и
      гражданская оборона
рефераты   География и экономическая
      география
рефераты   Геология гидрология и
      геодезия
рефераты   Спорт и туризм
рефераты   Рефераты Физика
рефераты   Физкультура и спорт
рефераты   Философия
рефераты   Финансы
рефераты   Фотография
рефераты   Музыка
рефераты   Авиация и космонавтика
рефераты   Наука и техника
рефераты   Кулинария
рефераты   Культурология
рефераты   Краеведение и этнография
рефераты   Религия и мифология
рефераты   Медицина
рефераты   Сексология
рефераты   Информатика
      программирование
 
 
 

Програмирование на Visual Basic

Элементы левого комбинированного списка сразу же выведены в окно. Имеется

возможность выбора элемента из списка и ввода нового элемента в список,

набрав его в строке ввода.

Элементы центрального комбинированного списка появляются в раскрывающемся

окне после щелчка мыши по стрелке. Имеется возможность выбора элемента из

списка и ввода нового элемента в список, набрав его в строке ввода.

Элементы правого комбинированного списка появляются в раскрывающемся окне

после щелчка мыши по стрелке. Имеется возможность только выбора элемента из

фиксированного списка (рис. 2.14, 2.15).

[pic]

Рис. 2.13

Private Sub Combol_KeyPress(keyascii As Integer)

If keyascii = 13 Then

combol.Addltem combol.Text

End If End Sub

Private Sub Combo2_KeyPress(keyascii As Integer)

If keyascii = 13 Then

combo2.Addltern combo2.Text

End If End Sub

Private Sub Form_Load ()

Listl.AddItem “Иванов И.И.” Listl.AddItem “Петров П.П.” Listl.AddItem

“Сидоров С.С.”

сотЬоЗ.Addltem “Неудовл.” combo 3.Add!tern “Удовлетв.” combo3.Addltem

“Хорошо” сотЬоЗ.Addltem “Отлично” combo2.Addltem “Михайлов М.М.”

combo2.Addltem “Николаев Н.Н.” combol.Addltem “Физика” combol.Addltem

“Математика” combol.Addltem “История” End Sub

Private Sub Listl_DblClick() List2.Addltem Listi.Text Listi.Removeltem

Listi.Listlndex

End Sub

Private Sub List2_DblClick() 2.11. ЛИНЕЙКИ ПРОКРУТКИ

Horizontal Scroll Bar и Vertical Scroll Bar (Горизонтальные и вертикальные

линейки прокрутки) позволяют задавать значение какой-либо величины в

определенном диапазоне и узнавать значение этой величины по позиции движка

на линейке.

Линейки прокрутки обладают уже рассмотренными свойствами: Enabled (Доступ),

Height (Высота), Width (Ширина), Name (Имя), Тор (Верхняя координата), Left

(Левая координата), Visible (Видимость), которые имеют те же функции и

значения параметров.

LargeChange (Постраничное изменение) определяет изменение текущей позиции

движка и соответственно задаваемую величину (Value) при щелчке внутри

линейки прокрутки.

Мах (Максимум) определяет максимальное значение задаваемой величины

(соответствует крайней правой или нижней позиции движка). Диапазон

значений: от -32768 до 32767.

Min (Минимум) определяет минимальное значение задаваемой величины

(сответствует крайней левой или верхней позиции движка). Диапазон значений:

от -32768 до 32767.

SmallChange (Построчное изменение) определяет изменение текущей позиции

движка и соответственно задаваемую величину (Value) при щелчке по одной из

стрелок направления прокрутки.

Value (Текущая позиция) отражает текущее значение и позицию движка. При

изменении свойства программным путем движок перемещается в соответствующую

позицию. При выходе за пределы, установленные Мах и Min, выводится

сообщение об ошибке.

Линейки прокрутки реагируют на уже рассмотренные события Click (Щелчок),

DblClick (Двойной щелчок), Keypress (Нажатие клавиши), GotFocus (Установка

фокуса), LostFocus (Потеря фокуса), которые вызывают соответствующие

процедуры обработки этих событий.

Scroll (Прокрутка) непрерывно генерируется при перемещении (мышью) движка

по линейке и позволяет динамически отслеживать его позицию.

Change (Изменение) возникает при изменении позиции движка и определяет его

конечное положение.

Рассмотренные ранее методы неприменимы к линейкам прокрутки.

[pic]

[pic] Пример программы.

Откроем новую форму и разместим на ней два текстовых окна и горизонтальную

линейку прокрутки (рис. 2.16).

В окне Properties (Свойства) для объекта Hscrolll (имя присваивается по

умолчанию) зададим следующие значения свойств:

LargeChange = 10, Мах = 100, Min = 0, SmallChange = 5.

[pic]

Рис. 2.16

Определим процедуры обработки событий НScrolll_Change и HScrolll_Scroll:

.Private Sub HScrolll_Change()

Textl.Text = HScrolll.Value End Sub

Private Sub HScrolll_Scroll()

Text2.Text = HScrolll.Value End Sub

Событие Change отражается в верхнем окне, событие Scroll - в нижнем окне.

После запуска программы щелчок мыши по полю вызывает перемещение движка и

изменение значения в верхнем окне на 10 единиц (Large Change), щелчок мыши

по стрелкам вызывает перемещение движка и изменение значения в верхнем окне

на 5 единиц (Small Change). Эти изменения не отражаются в нижнем окне (рис.

2.17). Перемещение движка мышью вызывает изменение значения, которые

отражаются в обоих окнах (рис. 2.18).

2.12. ПРИМЕР СОЗДАНИЯ ФОРМЫ

Создадим форму со следующими элементами управления (рис. 2.19):

. Комбинированный список типа 1, содержащий названия фирм-производителей

автомобилей.

[pic]

Рис.2.17 Рис. 2.18

. Метка с названием “Фирма”, поясняющая назначение комбинированного

списка.

. Комбинированный список типа 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

Private Sub Combo2_Click() Combo2.Enabled = False Label2.Enabled = False

Private Sub Cornmand4_Click () Listl.AddItem Text2.Text Text2.Text = “”

Commandl.Enabled = True End Sub

• Private Sub Command2_Click() End End Sub

Private Sub Command5_Click() Check2.Enabled = False Check4.Enabled = False

Frame2.Enabled = False HScroill.Enabled = False Label4.Enabled = False

Label5.Enabled = False Label6.Enabled = False Label7.Enabled = False

Lab.el8 .Enabled = False Commands.Enabled = False

Textl.Text = Textl.Text + Label5.Caption + “Л.С” + Chr$(13) + Chr$(10)

Framel.Enabled = True Listi.Enabled = True Text2.Enabled = True

Command4.Enabled = True Check3.Enabled = True Commandl.Enabled = True End

Sub

Private Sub Command6_Click() ‘If Listl.ListIndex >= 0 Then

Textl.Text = Textl.Text + Listl.Text + Chr$(13) + Chr$(10)

Framel.Enabled = False Listi.Enabled = False Text2.Enabled = False

Command4.Enabled = False Check3.Enabled = False Commandl.Enabled = False

Command6.Enabled = False Commands.Enabled = False End If End Sub

Textl.Text = Textl.Text + Combo2.Text + Chr$(13) + Chr$(10)

If Combo2.Text .= “Красный” Then LabelS.BackColor = &HFF& Elself

Combo2.Text = “Белый” Then LabelS.BackColor = &HFFFFFF Elself Combo2.Text =

“черный” Then LabelS.BackColor = &HO Elself Combo2.Text = “Синий” Then

LabelS.BackColor = &HFFOOOO Elself Combo2.Text = “Зеленый” Then

LabelS.BackColor = &HCOOO&

End If

Combo3.Enabled = True

Label3.Enabled = True

End Sub

Private Sub Combo3_Click() Combo3.Enabled = False Label3.Enabled = False

Textl.Text = Textl.Text + Combo3.Text + Chr$(13) + Chr$(10)

Frame4.Enabled = True ‘ “ Optioni.Enabled = True Option2.Enabled = True

Option3.Enabled = True End Sub

Private Sub Commandl Click () Listi.Clear ~ Commandl.Enabled = False End

Sub

• Private Sub Command3_Click() If Listl.ListIndex >= 0 Then

Listi.Removeltem Listl.ListIndex

Command3.Enabled = False End If If Listi.ListCount = 0 Then

Commandl.Enabled = False End If End Sub Private Sub Form_Load()

Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000)

Label5.Caption = Str$(HScrolll.Value) Combol.Addltem “Мерседес”

Combol.Addltem “Ауди” Combol.Addltem “Фольксваген” Combol.Addltem “Шкода”

Combol.Addltem “Рено” Combol.Addltem “Пежо” Combol.Addltem “Запорожец”

Combo2.Addltem “Красный” Combo2.Addltem “Бельм” Combo2.Addltem “черный”

Combo2.Addltem “Синий” Combo2.Addltem “Зеленый” Combo3.Addltem “Люкс”

СотЬоЗ.Addltem “Стандарт” Combo3.Addltem “Минимум” Listl.Addltem

“MusaMotors” Listi.Addltem “Savva” Listl.Addltem “A3P” Listl.Addltem

“ЛогоВАЗ” Listl.Addltem “ЛадаИнжениринг” End Sub

Private Sub HScrolll_Change()

Label4.Caption = Str$(HScrolll.Value * 735.499 / 1000)

Labels.Caption = Str$(HScrolll.Value) End Sub

Private Sub Listl_Click() If Listl.Listlndex >= 0 Then Command3.Enabled =

True Command6.Enabled = True End If End Sub

Private Sub Optionl_Click() Frame4.Enabled = False Optioni.Enabled = False

Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Optioni.Caption Chr$(13) + Chr$(10)

Check2.Enabled = True

Check4.Enabled = True

Frame2.Enabled = True

HScrolll.Enabled = True

Label4.Enabled = True

Labels.Enabled = True

Label6.Enabled = True

Label7.Enabled = True

Labei8.Enabled = True

Commands.Enabled = True End Sub

Private Sub Option2_Click() Frame4.Enabled = False Optionl. Enabled = False

Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Option2.Caption + Chr$(13) + Chr$ (10)

Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True

HScrolll.Enabled = True Label4.Enabled = True Labels.Enabled = True

Label6.Enabled = True Label7.Enabled = True Labels.Enabled = True

Commands.Enabled = True End Sub

Private Sub Option3_Click() Frame4.Enabled = False Optioni.Enabled = False

Option2.Enabled = False Option3.Enabled = False

Textl.Text = Textl.Text + Option3.Caption > Chr$(13) + Chr$ (10)

Check2.Enabled = True Check4.Enabled = True Frame2.Enabled = True

HScrolll.Enabled = True Label4.Enabled = True Ldbel5. Ei-icioled = True

Ldnei6.EnDied = True LdDpl7 . L.Jt,ied = Tr.Je Lctbel8 . Er.dbied = True

CoiTimand . Ј.ndbled = Tru Ei-ici Sub

2.13. МЕНЮ ПОЛЬЗОВАТЕЛЯ

Важным элементом GUI является стандартное меню пользователя. Visual Basic

имеет специальное средство для создания меню пользоваюлеи приложениями -

Menu Editor (Проектировщик меню). Это срелс-жо нозволяег построить меню

соответственно общим принципам рассмо1ренного событпиного управления для

форм и элементов управления. Меню пользоваге-ля создается выстраиванием

элементов меню в соответствии с необходимой их иерархией с помощью

Проектировщика меню.

Для вызова проектировщика меню нужно вызвать команду Menu Editor... из меню

Tools или щелкнуть кнопку Menu Editor на панели инструментов Главного меню.

При этом появится окно Menu Editor (рис.2.28). элемешы которою имеюг

следующее назначение:

. Caption примеияегся для ввода названии элементов списка меню,

используемых в диадою (например, Фаил, Edit и т.н.):

для создания разделительной черш (разделяет функциональные группы пунктов

меню) вместо имени вводтся символ “-“;

. Name иснользуегся для ввода имен элементов списка меню, используемых

при написании нро1раммы (аналогично свойству Name для форм и элементов

управления);

. Index - индекс элемеша списка диало1а в массиве (при использовании

массива элемента списка диалога);

. Shortcut - раскрывающийся список комбинаций клавиш, из которого можно

выбрагь комбинацию “горячих” клавиш эле-менюв списка меню;

. Windows List - флажок, при установке которого меню содержит список (л

крытых окон в многооконном приложении (MDI-приложения):

. HelpConiextID - индекс для поиска в HelpFile;

. Checked - флажок, при установке когорого помечается пункт выбранною

меню;

[pic]

Рис 2 2S

. Enabled - флажок, при установке которого пункт меню доступен;

. Visible - флажок, при усгановке которого пункт меню виден;

. кнопки изменения уровня пунктов меню;

[pic]

. кнопки изменения позиции пунктов меню на одном и том же уровне:

. Кнопки Next, Insert. Delete обеспечивают переход к следующему пункгу

меню, вставку и удаление пункта.

Рассмотрим использование проектировщика меню на примере разработки простого

редактора, который обеспечивает ввод и редактирование строк символов,

запись выделенного фрагмента в буфер и всгавку из буфера. Доступ к буферу

обмена можно получить через объект Clipboard, для которого определены

следующие методы:

. SetText записывает копию выделенного текста в буфер обмена;

. GetText () возвращает копию текстового содержимого буфера обмена;

. SetData записывает копию выделенного рисунка в буфер обмена;

. Get Data () возвращает содержимое (рисунок) буфера обмена;

. GetFormat () определяет, является ли содержимое буфера обмена текстом

или рисунком;

. Clear очищает содержимое буфера обмена.

Разместим на форме (имя - Formi, Caption - Редактор) многострочное

текстовое окно (имя - txlEdilBox), размеры которого совпадают с размером

формы, для ввода и редактирования текста. Меню редактора включает

раскрывающиеся меню: Файл (Новый, Открыть..., Сохранить, Сохранить как....

Выход), Правка (Вырезать, Копировать, Вставить), Справка (О программе). В

скобках указаны пункты соответствующих раскрывающихся меню. Это меню

создается с использованием Menu Editor.

На рис. 2.29 показано окно Menu Design Windows в момент проектирования.

Выделен элемент меню “Копировать” (свойство Caption - ^.Копировать, имя -

mnuEdifCopy, “горячая” клавиша -Ctrl+C). Вставка символа “&” означает

задание “горячей” клавиши. Символы “....” обозначают переход на следующий

уровень иерархии пунктов меню (“Копировать” является подпунктом меню

“Файл”) и задаются кнопками изменения уровня пунктов меню.

Аналогично имени mnuEditCopy образуются имена остальных пунктов меню,

которые используются для записи программы (nmuEditCut, mnuEditPaste,

mnuFileExit, mnuHelpAbout, mnuFileNew, mnuFileOpen, mnuFileSave,

mnuFileSaveAs, mnu File Exit}.

Тексты процедур обработки событий следующие:

Sub Form_Resize ()

txtEditBox.Height = ScaleHeight txtEditBox.Width = ScaleWidth

End Sub

Sub mnuEditCopy_Click ()

Clipboard.Clear 'очистить буфер

Clipboard.SetText txtEditBox.SeiText

'поместить 'выделенный текст в буфер End Sub

Sub mnuEditCut_Click ()

Clipboard.Clear 'очистить буфер Clipboard.SetText

txtEditBox.SeiText

'поместить 'выделенный текст в буфер txtEditBox.SeiText = “”

'удаление выделенного

'текста End Sub

Sub mnuEditPaste_Click ()

txtEditBox.SeiText = Clipboard.GetText() End Sub

Sub mnuFileExit_Click ()

If MsgBox(“Выход?”,1+32,”Подтвердить”)=lThen End

End Sub

Sub mnuHelpAbout_Click ()

MsgBox “Мой редактор на Visual Basic”,64,”О программе” • End Sub

Sub Form_Unload (Cancel As Integer)

Cancel = 1

mnuFileExit_Click End Sub

Процедура Form_Resiy (обработка события изменения размера формы)

обеспечивает автоматическое изменение размеров текстового окна при

изменении размеров формы.

Процедура mnuEditCopy_Click (обработка события щелчка мыши по пункту меню

“Копировать”) обеспечивает запись выделенного текста в буфер. Используются

рассмотренные выше методы для объекта Clipboard и методы для текстового

окна (операторы Clipboard. Clear и Clipboard.SetText txtEditBox. SeiText).

Во втором операторе txtEditBox. SeiText присваивается выделенный текст.

[pic]

Рис. 2.29

Процедура mnuEditCut_Click (обработка события щелчка мыши по пункту меню

“Вырезать”) обеспечивает перед удалением сохранение выделенного текста в

буфере.

Процедура mnuEditPaste_Click (обработка события щелчка мыши по пункту меню

“Вставить”) обеспечивает вставку текста из буфера (в данном случае

отсутствие при вставке выделения означает вставку в позицию курсора).

Процедура mniiFileExit_Click (обработка события щелчка мыши по пункту меню

“Выход”) обеспечивает выход из редактора. Оператор End обеспечивает

корректный выход из приложения (закрывает файлы и освобождает память). В

процедуре используется функция MsgBox для вывода окна сообщения. Синтаксис

ее применения следующий:

MsgBox сообщение [, тип окна] [, заголовок окна]

где

сообщение - текст сообщения;

тип окна - это сумма значений, определяющих число и тип кнопок на

диалоговом окне, стиль пиктограмм, используемых в окне, и др. спецификации.

В таблице приведены некоторые значения аргументов и их описание:

|Значение |Описание |

|типа | |

|0 |Выводить только кнопку OK |

|| |Выводить кнопки OK и Cancel |

|2 |Выводить кнопки Abort, Retry, |

| |Ignore |

|3 |Выводить кнопки Yes, No, Cancel |

|4 |Выводить кнопки Yes, No |

|5 |Выводить кнопки Retry, Cancel |

|16 |Выводить пиктограмму “Стоп” |

|32 |Выводить пиктограмму “?” |

|48 |Выводить пиктограмму “!” |

|64 |Выводить пиктограмму информации |

|0 |Кнопка по умолчанию - первая |

|256 |Кнопка по умолчанию - вторая |

|512 |Кнопка по умолчанию - третья |

|0 |Программное ведущее диалоговое окно|

|4096 |Системное ведущее диалоговое окно |

Первая группа значений (0-5) описывает номер и тип кнопок, отображаемых в

диалоговом окне; вторая группа (16, 32, 48, 64) описывает стиль пиктограммы

(иконки); третья группа (0, 256, 512) определяет кнопки по умолчанию;

четвертая группа (0, 4096) определяет выводимые окна сообщения (0 - окно

ввода для окончания работы приложения, 4096 - окно ввода для окончания

работы системы).

В качестве значения аргумента может указываться сумма значений типа по

одному из каждой группы. Например, в операторе

MsgBox “Удалить ?”, 52

значение аргумента 52 является суммой 48 и 4 (48 - вывод пиктограммы с

восклицательным знаком, 4 - кнопки “Yes” и “No”). Функция MsgBox возвращает

следующие значения:

|Константа | | |

| | | |

|vbOK |1 |ОК |

| |2 |Cancel |

|vbAbort |3 |Abort |

|vbRetry |4 |Retry |

|vblgnore |5 |Ignore |

|vbYes |6 |Yes |

|vbNo |7 |No |

Эти значения можно использовать для обработки результата работы

пользователя с окном MsgBox.

Процедура mnuHelpAbout_Click (обработка события щелчка мыши по пункту меню

“О программе”) обеспечивает вывод окна сообщения.

Процедура Form_Unload (Cancel As Integer) (обработка события щелчка мыши по

кнопке “Закрыть” раскрывающегося стандартного меню формы) обеспечивает

выход с подтверждением. Закрытие формы не обеспечивает корректного

завершения приложения. В этом случае присвоение Cancel =1 предотвращает

закрытие формы и обеспечивает корректный выход через процедуру

mnuFileExit_Click.

[pic]

Рис. 2.30

Разработанная программа имеет меню пользователя и обеспечивает функции

удаления, вставки и копирования при редактировании и выдачу сообщения о

программе (рис. 2.30—2.32).

[pic]

Рис. 2.31

[pic]

Рис. 2.32 Глава 3. Программирование на VISUAL BASIC 4

3.1. АЛФАВИТ

Visual Basic является языком программирования. Как любой другой язык,

например, русский, английский или язык программирования Pascal, он имеет

свой алфавит, используемый для написания операторов или предложений Visual

Basic. Алфавит Visual Basic включает:

. 26 латинских букв: А, В, С, D, Е, F, G, H, I, J, К, L, М, N, О, Р, Q,

R, S, Т, U, V, W, X, Y, Z;

. 10 арабских цифр: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0;

. 26 символов: !#$%&л*()+-/\<>=?@_|:'.,“ ” пробел.

Другие символы, определенные на клавиатуре, включая русские, можно

использовать только в строках символов.

3.2. ДАННЫЕ

3.2.1. Классификация данных

Данные характеризуются типом и организацией. Тип данных обобщает

следующие понятия:

. размещение в ЭВМ;

. способ представления;

. прикладной смысл.

Размещение. Данные и программа в момент выполнения размещаются в

оперативной памяти (ОП) ЭВМ, которая состоит из пронумерованных ячеек,

каждая из которых вмещает 1 байт данных (1 байт состоит из 8 битов, каждый

из которых может содержать элемент двоичных данных - 0 или 1). Номер

определенной ячейки называется адресом. Одного байта для хранения данного

как правило недостаточно и данное занимает непрерывную последовательность

байтов (2, 4, 8 байтов).

Способ представления. Последовательность битов в байтах данного кодирует

всю необходимую информацию, определяющую данное. Правила кодирования и их

реализация в разных ЭВМ определяют способ представления данного. Так, для

числовых данных существует способ представления с фиксированной точкой и с

плавающей точкой.

Прикладной смысл. Определяет возможность использования данных для тех или

иных целей (с арифметическими данными можно производить вычисления, из

символов можно строить слова и предложения).

В Visual Basic 4 определены следующие типы данных:

. байт (BYTE);

. логический (BOOLEAN);

. дата (DATE);

. короткий целый ( INTEGER);

. длинный целый (LONG);

. простой вещественный (SINGLE);

. удвоенной точности вещественный (DOUBLE);

. коммерческий (CURRENCY);

. строковый (STRING);

. объект (OBJECT);

. переменный (VARIANT).

В табл. 3.1 приводятся характеристики этих типов данных:

Таблица 3.1

|Тип |Описание |Диапазон |Занимаема|

|данных| |значении |я память |

|Byte |Двоичные |От 0 до 255 |1 байт |

| |данные | | |

|Boolea|Логический |True или False |2 байта |

|n | | | |

|Intege|Целые числа |От -32768 до |2 байта |

|r | |32767 | |

|Long |Целые числа |От -2 147 483 |4 байта |

| |(длинные) |648 до +2 147 | |

| | |483 647 | |

|String|Символьный |От О до |10 байт +|

|(varia|(переменной |2000000000 |длина |

|ble-le|длины) |символов |строки |

|ngth) | | | |

|String|Символьный |От 0 до |1 байт на|

|(fixed|(фиксированн|2000000000 |1 символ |

|-lengt|ой длины) |символов | |

|h | | | |

|Curren|Число с |От |8 байтов |

|cy |фиксированно|-22337203685477,| |

| |й десятичной|58 до | |

| |точкой |922337203685477,| |

| | |58 | |

|Date |Дата |От January 1, |8 байтов |

| | |100 до December | |

| | |31, 9999 | |

|Object|Объект | |4 байта |

| | | | |

Страницы: 1, 2, 3, 4, 5


© 2010 САЙТ РЕФЕРАТОВ