Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Косарев_Экомическая информатика

.pdf
Скачиваний:
170
Добавлен:
03.05.2015
Размер:
9.05 Mб
Скачать

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

 

 

 

 

431

Событие

 

 

Описание

 

Click, DblClick

События происходят, когда нажимается, а

 

затем отпускается кнопка мыши (щелчок и

MouseDown

двойной щелчок)

нажимается

кнопка

Происходит,

когда

MouseUp

мыши

 

при

отпускании

клавиши

Генерируется

 

мыши.

Возникает

после

события

MouseMove

MouseDown

 

 

 

Генерируется при перемещении мыши

Обработка событий Click и DblClick

Когда создается форма, то для каждого ее элемента Visual Basic создает процедуру обработки события Click, а точнее ее заголо­ вок и окончание:

Private Sub Имя Элемента Управления_СНск()

End Sub

где Имя Элемента Управления -

имя элемента управления, вызвавшего

Click

-

событие;

имя события.

Для обработки события достаточно в процедуру вставить про­ граммный код. Например, для командной кнопки, управляющей завершением работы программы, процедура обработки события Click выглядит следующим образом:

Private Sub CommandButtonl_Click()

End' Код процедуры обработки события

End Sub

Рассмотрим пример программы обработки события Click и DblClick, которая выдает сообщение о щелчке мыши и о двойном щелчке. Для создания программы выполните следующие действия:

1.Создайте проект с пустой экранной формой.

2.Свойству Name формы установите значение frmMouse, a свойству Caption - пустое значение.

3.В процедуры обработки событий UserForm_Click() и UserForm_DblClick() введите код:

432

Глава 8

Private Sub UserForm_Click()

'Сообщение о щелчке мыши

UserForml.Caption = «Была нажата кнопка мыши»

End Sub

Private Sub UserForm_DblClick(ByVal Cancel As MSForms.Return_

Boolean)

'Сообщение о двойном щелчке мыши

UserForml.Caption = «Событие DblClick»

End Sub

4. Запустите программу на выполнение. После щелчка или двойного щелчка мыши в любом месте формы в ее заголовке бу­ дет появляться текстовое сообщение о соответствующем событии (рис. 8.17).

Рис. 8.17. Сообщение о событии

Обработка событий MouseDown и MouseUp

Синтаксическая конструкция процедур обработки событий MouseDown и MouseUp:

Private Sub Имя Элемента ynpaeneraw_MouseDown (Button As Integer, _ Shift As Integer, X As Single, Y As Single)

Private Sub Имя Элемента Управления _MouseUp (Button As Integer, _ Shift As Integer, X As Single, Y As Single)

где Имя Элемента Управления -

имя элемента управления, вызвавшего

MouseDown / MouseUp

-

событие;

обрабатываемое событие;

Button

-

целое число, сообщающее о том, какие

Shift

-

кнопки мыши нажаты;

целое число, сообщающее о том, какие -н

X

-

клавиш [Shift], [Control] или [Alt] нажать ;

координата указателя мыши по горизон­

Y

-

тали;

координата указателя мыши по вертика.'

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

433

Далее приведен пример обработки событий MouseDown и MouseUp. Когда пользователь нажимает кнопку мыши, вызыва­ ется событие MouseDown, а процедура обработки этого события сообщает, какая клавиша мыши нажата, а также какая нажата комбинация управляющих клавиш [Shift], [Ctrl] и [Alt]. Эта про­ цедура также сообщает координаты мыши.

' Пример кода процедуры обработки событий MouseDown и MouseUp Sub CommandButtonl_MouseDown(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Dim strButton As String 'для преобразованного значения параметра Button

Dim strShift As String 'для преобразованного значения параметра Shift Dim strX As String 'для преобразованного значения параметра X Dim strY As String 'для преобразованного значения параметра Y 'Преобразование целых значений параметров X и Y в строки

strX = CStr(X) strY = CStr(Y)

'Проверка значения SHIFT с помощью оператора Select Case 'для выяснения того, какие из клавиш [Shift], [Ctrl] и [Alt] нажаты. 'Присвоение результата проверки строковой переменной strShift

Select Case Shift

CaseO

strShift =: «»

Case 1

strShift == «Shift»

Case 2

strShift == «Ctrl»

Case 3

strShift =«Shift + Ctrl»

Case 4

strShift =«Alt»

Case 5

strShift =: «Shift + Alt»

Case 6

strShift =«Ctrl + Alt»

Case 7

strShift = «Shift + Ctrl + Alt»

End Select

434

Глава 8

'Проверка значения BUTTON с помощью оператора Select Case 'для определения комбинации нажатых клавиш мыши. 'Присвоение результата проверки строковой переменной

strButton.

Select Case Button Case О

strButton = «» Case 1

strButton = «Left» Case 2

strButton = «Right» Case 3

strButton = «Left + Right» Case 4

strButton = «Middle» Case 5

strButton = «Left + Middle» Case 6

strButton = «Right + Middle» Case 7

strButton = «All» End Select

'Сообщить о вызове соответствующего события Label 1.Caption = «Событие MouseDown»

'Сообщить о том, какая комбинация клавиш нажата Label2.Caption = strShift

'Сообщить о том, какие кнопки мыши нажаты CommandButtonl.Caption = strButton

End Sub

Private Sub frMouse_MouseUp(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

' Сообщить о вызове соответствующего события Label 1.Caption = «Событие MouseUp»

End Sub

Обработка события MouseMove

Синтаксическая конструкция процедуры обработки этого со­ бытия:

Private Sub Имя Элемента Управления _MouseMove(Button As_ Integer, Shift As Integer, X As Single, Y As Single)

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

 

435

Здесь Имя Элемента Управления

-

имя элемента управления, вызвавше­

 

 

го событие;

MouseMove

-

обрабатываемое событие;

Button

-

целое число, сообщающее о том,

 

 

какие кнопки мыши нажаты;

Shift

-

целое число, сообщающее о том,

 

 

какие из клавиш [Shift], [Control] или

 

 

[Alt] нажаты;

X

-

координата указателя мыши

 

 

по горизонтали;

Y

-

координата указателя мыши

 

 

по вертикали.

Ниже приведен пример

процедуры обработки события

MouseMove.

 

 

Private Sub UserForm_MouseMove(ByVal Button As Integer, _

ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Dim strX As String 'для преобразования значения параметра X Dim strY As String 'для преобразования значения параметра Y

'Преобразование целых значений параметров X и Y в строковые strX = CStr(X)

strY = CStr(Y)

'Вывести на экран информацию о положении указателя мыши Label2.Caption = «X:» & strX & «,» & «Y:» & strY

End Sub

Эта процедура обрабатывает событие и выдает информацию о положении указателя мыши.

 

8.5.3. ОБРАБОТКА

 

СОБЫТИЙ КЛАВИАТУРЫ

Visual Basic поддерживает три события клавиатуры:

Событие

Описание

KeyPress

Генерируется, когда нажимается, а затем

 

отпускается одна из символьных клавиш

KeyDown

Генерируется при нажатии клавиши

KeyUp

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

436

Глава 8

Обработка события KeyPress

Когда при выполнении программы пользователь нажимает клавишу клавиатуры, Windows вызывает событие KeyPress (на­ жатие клавиши) сначала для формы, которая имеет фокус, а за­ тем для элемента управления, имеющего фокус. Синтаксическая конструкция процедуры обработки события KeyPress:

Private Sub Имя Элемента Управления KeyPress (KeyAscii as Integer)

Здесь Имя Элемента Управления

-

имя элемента управления, вызвавшего

KeyPress

-

событие;

имя события;

KeyAscii

- код ASCII той клавиши, которая была

 

 

нажата.

Событие KeyPress ассоциируется с символом нажатой клави­ ши. Когда происходит событие, VBA передает аргументу KeyAscii код ASCII той клавиши, которая была нажата. Этот символ ста­ новится доступным для процедуры обработки события.

Рассмотрим пример программы, которая содержит процеду­ ру, обрабатывающую событие KeyPress. При этом выполняются такие действия:

в текстовое поле путем нажатия клавиши вводится символ;

введенный символ распознается и определяется значение кода ASCII;

в окно сообщений выдается числовое значение кода и вве­ денный символ.

Для создания программы выполните следующие шаги:

1.Создайте новый проект с экранной формой, как на рис. 8.18.

Рис. 8.18. Экранная форма

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

437

2. В процедуру обработки события KeyPress элемента управ­ ления Textl введите код:

Private Sub TextBoxl_KeyPress(ByVal KeyAscii As_

MSForms.Returnlnteger)

' Объявление переменных

Dim ChrPressed As String 'Для хранения введенного символа Dim AscNum As String' Для хранения кода ASCII

Dim Msg As String' Для хранения строки сообщения 'Преобразование значения параметра в символ ChrPressed = Chr(KeyAscii)

'Преобразование числа в строку символов AscNum = CStr(KeyAscii)

'Формирование сообщения

Msg = Msg & «ASCII код» & AscNum Msg = Msg & «,» & «символ:» & ChrPressed MsgBox Msg

End Sub

3. В процедуру обработки сообщения Click элемента управле­ ния CommandButtonl введите код:

Private Sub Commandl_Click() End

End Sub

4. Запустите программу на выполнение. При нажатии алфа­ витно-цифровых клавиш в окне сообщения будет выдаваться ин­ формация о введенном символе и его коде (рис. 8.19).

Рис. 8.19. Сообщение о событии клавиатуры

438

Глава 8

Обработка событий KeyUp и KeyDown

Когда нажимается клавиша на клавиатуре, то для элемента управления, находящегося в фокусе, генерируется событие KeyDown, когда клавиша отпускается - событие KeyUp. Эти со­ бытия связаны с клавишами клавиатуры, а не с введенным сим­ волом, как в событии KeyPress.

Синтаксическая конструкция для процедур обработки собы­ тий KeyUp и KeyDown:

Private Sub Имя Элемента Управления _KeyUp(KeyCode as Integer, _ Shift as Integer)

Private Sub Имя Элемента Управления _KeyDown(KeyCode as Integer, _

 

 

Shift as Integer)

Здесь Имя Элемента Управления -

имя элемента управления,

KeyUp/KeyDown

-

вызвавшего событие;

имя события;

KeyCode

-

целое число, передающее значение

 

 

константы нажимаемой или отпускае­

 

 

мой клавиши. Этот параметр сообща­

 

 

ет не только о том, какая клавиша

 

 

нажата, но также и то, нажаты ли

 

 

функциональная клавиша, клавиша

 

 

на числовой клавиатуре, клавиши

Shift

-

со стрелками или другие;

целое число, которое сообщает о том,

 

 

были ли нажаты клавиши [Shift],

 

 

[Control] и [Alt].

Вопросы для самоконтроля

1.Что такое VBА?

2.Назовите основные объекты VBA.

3.Что понимается под семейством объектов!

4.Какие типы модулей различают в VBA?

5.Что понимается под свойством и методом объекта!

6.Что представляют собой событие и сообщение! Что может являть­ ся отправителем сообщения? Какие объекты могут выступать в качестве получателя сообщения?

7.Что представляют собой события GotFocus и LostFocus, каков син­ таксис процедур их обработки?

8.Назовите основные события формы. В каких случаях они проис­ ходят?

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

439

9.Назовите основные события мыши. В каких случаях они проис­ ходят?

10.Назовите основные события клавиатуры. В каких случаях они происходят?

11.Какие символы допускается применять в именах переменных?

12.Можно ли имя переменной начинать с цифры или с символа под­ черкивания?

13.Какие существуют соглашения по стилю имен?

14.Какие базовые типы данных поддерживает VBA?

15.Напишите оператор, явно декларирующий строковую перемен­ ную для хранения почтового адреса.

16.Какой оператор должен присутствовать в разделе глобальных объявлений, чтобы исключить ошибки в случае появления неяв­ но объявленных переменных?

17.Напишите оператор, декларирующий одномерный массив из 7 элементов целого типа и имеющий базовый индекс -3.

18.Что такое динамические массивы и как они декларируются?

19.Каково различие между переменной и константой? Какие типы констант поддерживает VBA?

20.Что представляют собой перечни, для чего они применяются?

21.Что представляет собой пользовательский тип данных, как он определяется и объявляется?

22.Каково различие между линейным и блочным оператором If?

23.Как определяется цикл с известным числом повторений?

24.Для каких целей служит цикл For Each, каков его синтаксис?

25.Какие циклы с условием поддерживает VBA?

26.В чем различие циклов с предусловием и постусловием?

27.Что такое функция и как она определяется?

28.Как производится обращение к функции?

29.Какие типы встроенных функций есть в VBA?

КОМПЬЮТЕРНЫЕ

СЕТИ

9 . 1 . ВИДЫ КОМПЬЮТЕРНЫХ СЕТЕЙ И ОСОБЕННОСТИ СЕТЕВЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

9.1.1. СПОСОБЫ СВЯЗИ КОМПЬЮТЕРОВ И ВИДЫ СЕТЕЙ

Компьютерная сеть - это совокупность компьютеров, между которыми возможен информационный обмен без промежуточных носителей информации. Для создания сети входящие в нее компь­ ютеры должны быть связаны каналами передачи информации - каналами связи, а на компьютерах - установлено специальное про­ граммное обеспечение, организующее работу в сети, - программы управления сетью. Технология работы в сети и возникающие при этом возможности зависят как от способов организации каналов связи, так и от программного обеспечения. Можно выделить сле­ дующие виды каналов связи и организуемых с их помощью сетей (рис. 9.1).

Простейшая компьютерная сеть. Она образуется при соедине­ нии двух недалеко отстоящих друг от друга компьютеров (в пределах 10 - 20 м) с помощью специального кабеля, называе­ мого нуль-модемом, который подключается к последовательным или параллельным портам обоих компьютеров. Такое временное

соединение называется прямым компьютерным соединением (ПКС).

Оно может быть установлено, а затем снято любым конечным пользователем. В настоящее время получают развитие инфракрас­ ные порты, позволяющие организовать указанный вид соедине­ ния напрямую, без кабеля. ПКС используется в основном для об­ мена информацией между портативным и стационарным персо­ нальным компьютером, например, офиса, хотя такой обмен возможен и между двумя стационарными ПК.