![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Нестандартные диалоговые окна
Иногда выясняется, что возможностей диалоговых окон MsgBox и InputBox не хватает, и тогда вам приходится конструировать собственные диалоговые окна. В своих проектах я стараюсь использовать одни и те же диалоговые окна, чтобы все мои приложения выглядели одинаково. В этом разделе я покажу, как создать диалоговые окна, которыми можно будет пользоваться в других приложениях. Чтобы вам не пришлось запоминать все константы и параметры, используемые при создании нестандартных диалоговых окон, создайте специальные функции (они называются оболочками) и внесите их в отдельный модуль кода. Затем этот модуль можно включить в проект и при необходимости вызывать функции-оболочки. Оболочкой называется функция, в которой вызываются другие функции и процедуры. Оболочки упрощают программу и позволяют создавать модули, предназначенные для многократного использования. Основное преимущество оболочки заключается в том, что вы можете всего один раз написать программный код, а потом пользоваться им снова и снова. Давайте рассмотрим небольшой пример: 1. Откройте окно программы для предыдущего примера. 2. Добавьте следующий фрагмент:
Private Sub LoginBox() Dim гс As String
гс = InputBox(" Bведитe имя: ") If гс = " АДМИНИСТРАТОР" Then MsgBox " Здравствуй, хозяин! " Else MsgBox " Привет, " & гс & "! " End If End Sub
3. Измените код процедуры события Click кнопки cmdTryMe:
Private.Sub cmdTryMe_Click() LoginBox End Sub
4. Запустите приложение. 5. Введите в текстовом поле строку АДМИНИСТРАТОР и нажмите кнопку ОК. Хотя этот пример во многом похож на предыдущий, диалоговое окно теперь вызывается из процедуры-оболочки LoginBox. Вместо того чтобы включать весь код в процедуру события Click, достаточно вызвать процедуру LoginBox — результат будет тем же. Обратите также внимание на небольшое изменение. Теперь функция проверяет введенное имя, и если оно совпадает со строкой АДМИНИСТРАТОР — приветствует пользователя специальным сообщением. Данный пример наглядно показывает, как все действия, необходимые для выполнения законченной операции, укладываются в одной удобной функции. Дальнейшее развитие этого подхода описано в уроке 15, «Объектно-ориентированное программирование (ООП)». При желании тему можно развить, связав этот модуль с классом и создав собственный класс для работы с диалоговым окнами. Впрочем, вряд ли это стоит делать - разве что вам приходится часто работать с диалоговыми окнами, отсутствующими в Visual Basic. Например, большинство моих программ распространяется на условиях shareware (условно бесплатно). Поскольку в Visual Basic нет специальных диалоговых окон (например, окна регистрации), используемых в shareware-программах, я создал простейший класс ShareLib и пользуюсь им во всех своих проектах. В следующем примере будет создан простейший класс для работы с диалоговыми окнами, который можно будет настроить в соответствии с вашими требованиями.
ПОДСКАЗКА Если в ваших программах часто используются одни и те же стандартные операции, попробуйте «завернуть» их в специальные функции-оболочки и вызывать эти функции в программе. В результате экономится не только время программирования и отладки, но и память!
|