Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание класса диалогового окна






В этом разделе мы создадим простейший класс для работы с диалоговыми окнами, которым вы сможете пользоваться в своих будущих проектах. Если некоторые свойства или приемы покажутся вам непонятными, не огорчайтесь — объектно-ориентированное программирование (ООП) и ActiveX будут рассмотрены в уроках 15 и 17. Класс для работы с диалоговыми окнами создается так:

1. Создайте новый проект командой File > New Project.

2. Выберите тип проекта ActiveX DLL и нажмите кнопку ОК.

3. Создайте в проекте модуль класса и задайте свойству Name значение modDialogs.

4. Откройте окно программы модуля modDialogs и добавьте следующую процедуру:

 

Sub Main()

'Данная процедура может не содержать программного кода,

'однако она необходима для правильной работы DLL.

End Sub

 

5. Дважды щелкните на классе Class1 в окне проекта, чтобы сделать его активным.

6. Задайте следующие свойства класса.

 

Name: Instancing:
clsDialogs 5 - MultiUse

 

 

Первое диалоговое окно, которое мы создадим, предназначено для ввода логических величин, например ответов на вопросы типа «Вы уверены?» Я всегда отображаю такие окна перед выполнением каких-либо критических действий (например, закрытия приложения с несохраненными данными или форматированием диска). Все, что от вас требуется, — выбрать заголовок и текст сообщения и передать их функции YNBox. После этого остается лишь проверить, равно ли возвращаемое значение vbYes (то есть 6).

Откройте окно программы для класса clsDialogs и добавьте в него следующую функцию:

 

Public Function YNBox(title As String, msg As String) As Integer

Dim rc As Integer

Dim DlgDef As Long

 

DlgDef = vbYesNo + vbQuestion

rc = MsgBox(msg, DlgDef, title)

YNBox = rc

End Function

 

Следующая процедура отображает диалоговое окно с сообщением об ошибке. Ее можно вызывать из процедуры обработки ошибок, чтобы ваши сообщения об ошибках имели стандартный вид. Создайте следующую процедуру:

 

Public Sub ErrMsg(title As String, msg As String)

Dim rc As Integer

Dim DlgDef As Long

 

DlgDef = vbOkCancel + vbCritical

rc = MsgBox(msg, DlgDef, title)

End Sub

 

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

Осталось написать последнюю функцию, создающую диалоговое окно для регистрации пользователя. Я не собираюсь усложнять задачу и включать в нее воз-можность маскировки вводимых символов, а также проверку пользовательского имени и пароля. Единственная цель диалогового окна - немного облегчить ввод имени Тем не менее позднее вы можете создать полноценное диалогов текстовыми полями, маскирующими вводимые символы, ограничивающими дли-ну пароля и т. д. Созданное окно можно будет вызвать вместо функции

1. Добавьте следующий фрагмент:

 

Public Function LoginBox (title As String, msg As String, _

default As String) As String

Dim rc As String

 

rc = InputBox(msg, title)

LoginBox = rc

End Function

 

2. Сохраните проект под именем dialogs.vbp.

3 Откройте диалоговое окно Project Properties и введите строку Dialogs в поле Project Name. В поле Project Description введите строку Класс для работы с диалоговыми окнами.

4. Перейдите на вкладку Make и введите в поле Application Title строку Dialogs.

5. Созданный класс необходимо откомпилировать, чтобы им можно было пользоваться в приложениях. Выполните команду File > Make Dialogs.Dll и нажмите кнопку ОК.

После короткой паузы будет создана откомпилированная библиотека DLL, которую можно использовать в других программах. Более подробная информация об ActiveX DLL приведена в уроке 14. Следующий пример показывает, как использовать созданный класс в приложениях.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.