Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2006

Вид материалаУчебное пособие

Содержание


2.8. Встроенные диалоговые окна
2.8.1. Окно ввода - функция InputBox
InputBox(Prompt [, Title] [, Default])
Title - заголовок
2.8.2. Окно сообщений - функция MsgBox
2.8.2.1. Константы параметра Buttons
2.8.3. Применение функций InputBox и MsgBox в проекте
On Error Resume Next
Подобный материал:
1   2   3   4   5   6   7   8   9   10

2.8. Встроенные диалоговые окна


В Visual Basic используются встроенные диалоговые окна: окно ввода - InputBox имеет поле для ввода информации, а окно сообщений - MsgBox выводит сообщения для пользователя.

2.8.1. Окно ввода - функция InputBox


Функция InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода.




Рис. 2.30. Окно ввода - функция InputBox


Функция InputBox при нажатии кнопки ОК возвращает строку введенную пользователем в поле ввода, при нажатии кнопки Cancel возвращает пустую строку.

Упрощенный синтаксис функции:


InputBox(Prompt [, Title] [, Default])


где

Prompt приглашение, отображаемое в диалоговом окне. Может содержать несколько строк. Для разделения строк используются символы chr(13) и chr(10)

Title - заголовок, отображаемый в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения;

Default строка по умолчанию, возвращаемая функцией, если пользователь не введет другую строку.

Prompt, Title, Default –параметры типа String.

2.8.2. Окно сообщений - функция MsgBox


Функция MsgBox выводит на экран диалоговое окно, содержащее сообщение. При закрытии окна функция возвращает значение типа Integer, указывающее, какая кнопка была нажата, например, vbOK, vbCancel, vbAbort, vbYes, vbNo.





Рис. 2.31. Окно сообщений - функция MsgBox


Упрощенный синтаксис функции:


MsgBox(Prompt [, Buttons] [, Title])

где

Prompt приглашение, отображаемое в диалоговом окне.

Buttons - числовое выражение, представляющее сумму констант-атрибутов, которые указывают тип отображаемых кнопок, тип используемого значка, основную кнопку, модальность окна и др. Значение по умолчанию параметра Buttons равно нулю.

Title - заголовок, отображаемый в строке заголовка окна.

Prompt, Title – параметры типа String, Buttons – константа.

2.8.2.1. Константы параметра Buttons


Параметр Buttons задается в виде суммы констант:

Константа1+ Константа2 +Константа3+ДопКонстанты

Константа3 указывает какая кнопка будет иметь фокус:

VbDefaultButtonl = 0 - первая, 256 - вторая, 512 - третья, 768 – четвертая.


Таблица 2.36


Константа1

Значение

Константа2

Значение

VbOKOnly

0

VbCritical

16

VbOKCancel

1

VbQuestion

32

VbAbortRetrylgnore

2

VbExclamation

48

VbYesNoCancel

3

VbInformation

64

VbYesNo

4







VbRetryCancel

5








Отметим следующие значения констант ДопКонстанты:


VbSystemModal - делает окно модальным для операционной системы,

VbMsgBoxSetForeground - делает окно фоновым.


Пример использования функции MsgBox для подтверждения закрытия формы.


Private Sub Form_QueryUnload(Cancel As Integer,UnloadMode As Integer)

If MsgBox("Закончить?",vbQuestion+vbYesNo, Me.Caption)=vbNo _
Then Cancel=True


End Sub

2.8.3. Применение функций InputBox и MsgBox в проекте


Приведем пример использования окон диалога.

Будем изменять цвет формы, задавая константы цветов в окне ввода InputBox. Удобно задавать цвет, используя функцию RGB.

Функция RGB позволяет получить любой цвет, смешивая красную, зеленую и синюю компоненты различной интенсивности.


Синтаксис: RGB(Red, Green, Blue)


где Red, Green, Blue – целые числа от 0 до 255:
  • Red – интенсивность красного;
  • Green – интенсивность зеленого;
  • Blue –интенсивность синего.


Расположим на форме элемент управления согласно рис. 2.32.





Рис. 2.32. Изменение цвета формы


Пример программного кода для изменения цвета формы.

Private Sub Command1_Click()

Dim btRed As Byte, btGreen As Byte, btBlue As Byte


' код для красного

On Error Resume Next

btRed=CByte(InputBox("Введите интенсивность красного – число от 0 до 255", _

"Ввод цвета формы", "255"))

If Err.Number <> 0 Then

MsgBox "Принято 255", vbCritical Or vbOKOnly, "Ошибка ввода красного"

btRed = 255

End If

Err.Clear


' аналогичный код для зеленого

' аналогичный код для синего


Caption = "красного:" & btRed & " зеленого:" & btGreen & " синего:" & btBlue

BackColor = RGB(btRed, btGreen, btBlue)

End Sub