Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2006
Вид материала | Учебное пособие |
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2005 удк 330., 1365.17kb.
- Учебное пособие Часть 1 Рекомендовано учебно-методическим советом угаэс уфа 2006, 1359.55kb.
- Бизнес-планирование предприятия учебное пособие Рекомендовано учебно-методическим советом, 1729.98kb.
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2009, 2459.47kb.
- Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2008, 3188.71kb.
- Учебное пособие Часть 2 Производственная безопасность Рекомендовано учебно-методическим, 1618.75kb.
- Учебное пособие уфа-2007 удк 330. 01 (075. 8) Ббк 65. 02., 836.31kb.
- Учебное пособие Рекомендовано научно-методическим советом, 1565.87kb.
- Учебно методическое пособие Минск 2006 удк 616. 42-006. 441-053. 2(075., 1819.29kb.
- Учебное пособие рекомендовано умо по образованию в области сервиса угаэс, 1695.83kb.
2.10. Массивы объектов
Массивом объектов называется совокупность однотипных объектов с одинаковыми именами. Для создания массива объектов на этапе конструирования необходимо:
| |
| |
Рис. 2.38. Создание массива объектов
Можно создать массив из объектов уже размещенных в контейнере. Для этого в окне свойств задайте свойству Name объектов одно и то же значение, например Option1. После ввода имени для второго объекта, появится окно диалога Visual Basic, в котором следует выбрать "Да" для создания массива.
Массив объектов создается, как правило, для написания более простого и краткого программного кода. В программном коде, при обращении к объекту массива указывается его индекс: ИмяОбъекта(Индекс), например Option1(5).
2.11. Создание группы переключателей
Группа переключателей – два и более переключателей – OptionButton, свойство Value которых, взаимозависимо. В группе переключателей нельзя выбрать (установить для свойства Value значение True) более одного переключателя.
Для создания группы переключателей используются объекты-контейнеры, например, форма - Form, рамка - Frame (чаще всего) и графическое поле - Picture. Рамка позволяет объединить переключатели в группу не только логически, но и визуально. Отметим, что переключатели в группе совсем необязательно должны быть массивом объектов.
2.11.1. Порядок размещения переключателей в рамках
- Если рамка группирует переключатели, то сначала создается объект – рамка, а затем на нем размещаются переключатели.
- Если рамка не группирует переключатели, то сначала на каком-либо контейнере размещаются переключатели (при этом создается группа), далее поверх них размещается рамка (которая объединяет переключатели лишь визуально) и затем в контекстном меню рамки выбирается команда: Send to Back.
Используя для выделенной группы переключателей приемы вырезания (Ctrl+Х) и вставки (Ctrl+V), можно переносить их с одного объекта-контейнера на другой.
2.12. Несколько форм в проекте
2.12.1. Шаблоны форм диалога
Шаблоны форм можно использовать при создании проектов в среде проектирования Visual Basic в качестве вспомогательных окон диалога, временно появляющиеся на экране с какими-либо сообщениями для пользователя. Как правило такие окна бывают модальными (VbModal), т.е. "прекращающими" работу пользователя с другими окнами приложения, пока пользователь не закроет модальное окно.
В Visual Basic имеются шаблоны форм диалога, например:
- Dialog – простой диалог
- About Dialog – о программе
- Log in Dialog – диалог регистрации
2.12.2. Создание и вывод на экран окна диалога
Для создания окна диалога можно воспользоваться одним из шаблонов форм, представляемых Visual Basic. Выполните команду меню Project, Add Form, в окне Add Form выберите нужную форму. В окне Project появятся новые формы проекта.
Рис. 2.39. Создание окон диалога
Чтобы открыть форму в конструкторе форм необходимо в окне Project выполнить двойной щелчок на названии формы.
Для вывода на экран окна диалога используется метод Show:
ИмяФормы.Show [style] [,ownerform]
где
style – стиль формы: VbModal – модальная, VbModaless – не модальная (по умолчанию)
ownerform – собственник формы, часто используется ключевое слово Me, обозначающее форму, в модуле которой был вызван метод, например:
frmDialog.Show vbModal, Me
Создание формы диалога из шаблона Form
Свою форму диалога можно создать из шаблона Form, установив необходимые свойства формы и разместив на ней нужные компоненты. В данном случае форма будет предназначена для просмотра видео-клипов. Для этого добавьте на панель General компонент Microsoft Windows Common Controls 2-6.0.
| Добавьте в стандартный проект форму Form и установите свойства формы: Name=FrmMyDialog, BackColor=ToolTip, BorderStyle=VbFixedDialog. Добавьте на форму кнопки CmdYes (Да) со свойством Default=True и CmdNo (Нет) со свойством Cancel=True. Добавьте на форму компоненты CommonDialog и Animation. Для компонента Animation установите свойство Center=True. |
Рис. 2.40. Форма с компонентом Animation |
Для вывода формы необходимо в модуле главной формы проекта, например в событии Click кнопки Command1 набрать код:
Private Sub Command1_Click()
FrmMyDialog.Show vbModal, Me
End Sub
В модуле формы FrmMyDialog наберите код:
Private Sub Form_Load()
CommonDialog1.InitDir="C:\Program Files\Microsoft Visual Studio" _
&"\Common\Graphics\Avis\"
End Sub
Private Sub CmdNo_Click()
Animation1.Stop
Animation1.Close
CommonDialog1.InitDir = CurDir
Unload Me
End Sub
Private Sub CmdYes_Click()
On Error GoTo MtkErr
CommonDialog1.Flags = cdlOFNFileMustExist
CommonDialog1.Filter = "аудио-видио файлы (*.avi)|*.avi"
CommonDialog1.ShowOpen
If CommonDialog1.FileName = Empty Then Exit Sub
Animation1.Open CommonDialog1.FileName
Animation1.Play
Exit Sub
MtkErr:
MsgBox "Ошибка: " & Err.Description,vbCritical,"CommonDialogError"
End Sub
Шаблон формы Dialog
Форма Dialog используется для вывода сообщений и запросов, например, на продолжение работы приложения. Свойство формы BorderStyle имеет значение VbFixedDialog. На форме расположены кнопки OKButton, свойство Default=True и CancelButton, свойство Cancel=True.
Добавьте в форму Dialog элемент управления Label с надписью " Закрыть приложение?", как показано на рис. 2.41. Чтобы узнать, какая кнопка была нажата пользователем, введем открытую переменную BlnDlgRet логического типа.
Рис. 2.41. Форма Dialog
В модуле формы Dialog наберите код обработки событий
Public BlnDlgRet As Boolean 'переменная, возвращающая результат (да, нет)
Private Sub CancelButton_Click()
BlnDlgRet = False
Unload Me
End Sub
Private Sub OKButton_Click()
BlnDlgRet = True
Unload Me
End Sub
Форму Dialog можно использовать в модуле главной формы проекта, например, в событии QueryUnload для подтверждения закрытия формы:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dialog.Show vbModal, Me
If Dialog.BlnDlgRet = True Then Cancel = False
End Sub
Шаблон формы About Dialog
Форма About Dialog содержит информацию о приложении и ее разработчике.
| Свойство формы BorderStyle=VbFixedDialog. На форме расположена кнопка cmdOK со свойствами Default=True и Cancel=True, а также кнопка cmdSysInfo. Модуль формы About Dialog содержит обработчики событий, позволяющие: считать из реестра путь к файлу msinfo32.exe (информация о системе), открыть файл, вывести надписи при загрузке формы, выгрузить форму. |
Рис. 2.42. Форма About Dialog |
При загрузке формы используется следующий код
Private Sub Form_Load()
Me.Caption = "About " & App.Title 'Название приложения
lblVersion.Caption= "Version " & App.Major & "." & App.Minor _
& "." & App.Revision
lblTitle.Caption = App.Title
End Sub
Рис.2. 43. Информация о системе (файл msinfo32.exe)
Шаблон формы Log in Dialog
Форма Log in Dialog предназначена для регистрации пользователя.
| Свойство формы BorderStyle=VbFixedDialog. На форме расположены надписи, кнопка cmdOK со свойством Default=True, кнопка cmdCancel со свойством Cancel=True, а также текстовое поле txtUserName и поле txtPassword со свойством PasswordChar="*". |
Рис. 2.44. Форма Log in Dialog |
Модуль формы Log in Dialog содержит обработчики событий кнопок и открытую переменную LoginSucceeded со значением True, если пароль введен верно, иначе – False. При закрытии формы используется метод Hide, не выгружающий ее из оперативной памяти. Пример:
Public LoginSucceeded As Boolean 'открытая переменная
Событие кнопки "Cancel"
Private Sub cmdCancel_Click()
LoginSucceeded = False
Me.Hide 'введенный пароль не стирается
End Sub
Событие кнопки "OK"
Private Sub cmdOK_Click()
If txtPassword = "psw" Then
LoginSucceeded = True
Me.Hide 'введенный пароль не стирается
Else
MsgBox "Invalid Password, try again!", , "Login"
txtPassword.SetFocus
SendKeys "{Home}+{End}" 'выделить текст
End If
End Sub
Общий модуль проекта
Процедуры, используемые в различных модулях проекта и не являющиеся методами какой либо формы проекта, размещаются в отдельном модуле проекта. Для добавления в проект модуля без формы выполните команду меню Project, Add Module. В окне Add Module выберите значок Module. Имя модуля можно изменить в окне свойств. Приведем пример использования модуля.
Установить шрифт по умолчанию для объекта.
Public Sub GetFontDefault(obj As Object)
With obj.Font
.Name = "MS Sans Serif"
.Size = 8
.Bold = False
.Italic = False
.Strikethrough = False
.Underline = False
End With
obj.ForeColor = vbButtonText
End Sub
Установить шрифт, выбранный в общем диалоге, для объекта.
Public Sub GetFontCmnDlg(obj As Object, CmnDlg As CommonDialog)
With obj.Font
.Name = CmnDlg.FontName
.Size = CmnDlg.FontSize
.Bold = CmnDlg.FontBold
.Italic = CmnDlg.FontItalic
.Strikethrough = CmnDlg.FontStrikethru
.Underline = CmnDlg.FontUnderline
End With
obj.ForeColor = CmnDlg.Color
End Sub
Рис. 2.45. Выбор атрибутов шрифта, в общем диалоге (CommonDialog)
Пример использования процедур модуля Module1 для присвоения цвета метке Label1. Установки флага – доступны экранные и принтерные шрифты и эффекты (Видоизменение).
Private Sub CmdModal_Click()
Call Module1.GetFontDefault(Label1)
.CancelError = True
On Error GoTo MtkErr
CommonDialog1.Flags=cdlCFBoth + cdlCFEffects
CommonDialog1.FontName = Label1.Font.Name
CommonDialog1.ShowFont
Call Module1.GetFontCmnDlg(Label1, CommonDialog1)
Exit Sub
MtkErr:
If Err.Number <> cdlCancel Then
MsgBox "Ошибка: " & Err.Description,vbCritical Or vbOKOnly, _
"CommonDialogError"
End If
End Sub
Контрольные вопросы
Все вопросы относятся к языку программирования Visual Basic
Какое расширение имеет файл проекта?
- Как называется кнопка для отображения панели General?
- Как называется кнопка для отображения свойств выбранного объекта?
- Какая команда меню для отображения окна с дополнительными компонентами?
- Какая команда меню Format предназначена для блокирования объектов на форме?
- Какой элемент управления используется для создания надписи?
- Какой элемент управления используется для ввода данных?
- Какой элемент управления используется для переключателя?
- Какой элемент управления используется для флажка?
- Какой элемент управления объединяются в группы?
- Какой элемент управления используется для отображения списка дисков?
- Какой элемент управления используется для отображения списка папок?
- Какой элемент управления используется для отображения списка файлов?
- Какое свойство элемента управления FileListBox задает маску для выбора файлов?
- Какой метод элемента управления FileListBox, используется для обновления списка?
- На какие компоненты можно вывести графические изображения?
- Какие компоненты можно вывести данные методом Print?
- Для чего предназначено свойство Font?
- Для чего предназначено свойство ToolTipText?
- В каком свойстве элемента управления ComboBox содержатся данные?
- В каком свойстве элемента управления ListBox содержится текущий номер элемента списка?
- В каком свойстве элемента управления ListBox содержится текущее значение?
- Какое свойство позволяет скрыть заголовок формы?
- Какое свойство позволяет автоматически развернуть форму на весь экран сразу после запуска проекта?
- Какое свойство позволяет задавать положение формы на экране сразу после запуска проекта?
- Какое свойство позволяет форме получать сообщение о событиях нажатия клавиш?
- Какое событие происходит дважды при двойном щелчке на форме?
- Нажатие каких клавиши может вызвать в форме событие KeyPress?
- Нажатие каких клавиши может вызвать в форме событие KeyDown?
- Что возвращает функция InputBox при нажатии кнопки ОК в окне диалога?
- Что возвращает функция InputBox при нажатии кнопки Cancel в окне диалога?
- Для чего предназначена функция MsgBox Visual Basic?
- Что возвращает функция MsgBox Visual Basic при нажатии кнопок в окне диалога?
- Что возвращает окно "Открытие файла" компонента CommonDialog при нажатии кнопки "Отрыть"?
- Для чего предназначена функция "Me"?