- •1)Структурные особенности Visual Basic. Подпрограммы. Пример.
- •2. Диалоговые окна MsgBox и InputBox. Примеры.
- •3. Четыре принципа объектно-ориентированного программирования. Их реализация в Visual Basic.
- •4. Классы. Интерфейс классов. Создание динамических библиотек на основе классов в Visual Basic. Регистрация библиотек.
- •5. Способы объявления объектных переменных в Visual Basic.
- •6. Раннее и позднее связывание с объектом. Примеры.
- •7. Способы объявления событий классов. Примеры.
- •8. Создание элемента управления ActiveX в Visual Basic. Отображаемые и пользовательские свойств и методы ActiveX-компонент. Передача события приложению–контейнеру. Регистрация компонент.
- •9. Пример динамического способа формирования объектов на форме vb.
- •10)Пример работы с коллекцией объектов, свойствами и методами объектов.
- •11. Работа с отладчиком Visual Basic. Окна Watch, Immediate.
- •12. Оператор On Error. Методы объектов Debug. Условная компиляция. Примеры
- •13. Свойства и методы объектов Debug, Err. Примеры.
- •Объявление переменных
- •Математические операции
- •Строковые операции
- •Оптимизация приложений
- •Оптимизация скорости работы приложения
- •Оптимизация размера приложения
- •Оптимизация размера графики приложения
- •15. Основные свойства и методы объектов Screen. Примеры
- •Свойство ActiveControl
- •16. Основные свойства и методы объектов Clipboard. Примеры.
- •17. Основные свойства и методы объектов App. Примеры
- •18.Редактор меню Menu Editor. Оконные приложения.Основные свойства объекта Menu. Примеры.
- •Отображение контекстных меню
- •Изменения кода для отображения контекстных меню
- •19.Основные объекты (FileSystemObject, File, Drive, Folder и TextStream.), их свойства и методы библиотеки Scripting.FileSystemObject
- •20. Основные свойства, методы и события объекта UserControl.
- •26. История развития объектных моделей.
- •27. Компонентные приложения. Особенности компонент.
- •28. Интеграция приложений средством Automation.
- •29. Объектная модель ms Word. Свойства и методы объекта Application модели ms Word. Пример.
- •30. Примеры процедур на определение списка всех панелей инструментов и тем главного меню ms Word.
- •32. Свойства и методы объектов Options, Dialogs, Selection и Range объектной модели ms Word.
- •33. Объекты, свойства и методы семейства CommandBars
- •34. Объекты и семейства объекта vbe
- •Объект CodeModule .Представляет программу, определенную для таких компонентов проекта как форма, класс или документ. Дополнительные сведения
- •Объект CommandBarEvents
- •Семейство CommandBars
- •Объект vbComponent
- •Семейство vbComponents
- •Объект CodePane
- •Семейство CodePanes
- •Объект Events
- •Семейство LinkedWindows
- •Объект Property
- •Семейство Properties
- •Объект Reference
- •Семейство References
- •Объект ReferencesEvents
- •Объект vbe
- •Объект vbProject
- •Семейство vbProjects
- •Объект Window
- •Семейство Windows
- •Редактор Visual Basic
- •Библиотека объектов Office 2000 и Object Browser
- •37. Объектная модель ms Excel. Свойства и методы объекта Application.
- •38. Объектная модель ms Excel. Свойства, методы, события объекта WorkBook.
- •39. Объектная модель ms Excel. Свойства, методы, события объекта WorkSheet
- •40. Методы класса WorkSheetFunction объектной модели ms Excel. Пример на вычисление выражения.
- •41. Пример использования объекта SpreadSheet в проектах vb.
- •42. Функции работы с матрицами окна vba Excel. Пример решения системы линейных уравнений.
- •43. Свойства объекта Range объектной модели ms Excel.
- •44. Методы объекта Range объектной модели ms Excel. Примеры.
- •45. Пример сортировки слов в строке с использованием объектной модели ms Excel.
- •46. Пример вычисления корня нелинейного уравнения с использованием объектной модели ms Excel.
- •47. Свойства и методы объекта Chart объектной модели ms Excel. Пример.
- •Терминальные свойства объекта Chart
- •Методы объекта Chart
- •События объекта Chart
- •Построение обработчиков событий
- •48. Пример отображения на форме vb графика функции с использованием объектной модели ms Excel. Рассмотреть способ передачи графика через диск и через буфер обмена.
- •49. Методы SolverOk и SolverAdd библиотеки Solver.Xla.
- •50. Методы SolverOptions, SolverSolve и SolverDelete, SolverSave, SolverLoad библиотеки Solver.Xla.
- •52. Пример динамического способа формирования объектов на форме vba Excel.
- •51. Пример решения системы нелинейных уравнений с использованием объектной модели ms Excel.
- •53. Объектная модель (объекты и коллекции) ms Access.
- •54. Свойства и методы объекта Application объектной модели ms Access.
- •55. Интерфейсы объектов данных и интерфейсы прикладного уровня программирования.
- •56. Объектная модель dao рабочей области ms Jet. Объекты и семейства. Пример открытия бд Access.
- •57. Объектная модель dao рабочей области odbcDirect.
- •59.Ручной и программный способ установления связи с источником данных.
- •62.ActiveX-компонент WebBrowser и объект InternetExplorer для работы в www из проектов Visual Basic.
- •86.Особенности работы с логическим инструментом. Пример отображения в окне прямоугольника заданного размера, толщины и цвета.
- •87.Работа со строками в Windows. Изменение цвета и фона строки текста.
- •89.Пример работы с базовыми шрифтами.
- •95.Пример отображения базовых геометрических фигур, использующих api-функции.
- •96.Создание и заполнение произвольных областей. Пример.
20. Основные свойства, методы и события объекта UserControl.
Модуль UserControl является базовым объектом для создания специализированных элементов управления, подобно объекту Form. Любой элемент управления, созданный с помощью Visual Basic, обязательно включает в свой состав UserControl. В пределах его визуального интерфейса могут размещаться интерфейсы других элементов, называемых в таком случае составляющими.
Разработчик обладает всей полнотой контроля над программным интерфейсом элемента управления и может добавлять в него по мере надобности дополнительные свойства, генерируемые события и методы. Проще всего это делается с помощью Мастера – надстройки Control Interface Wizard. Control Interface Wizard проводит пользователя через последовательность шагов, состоящих в добавлении тех или иных свойств, событий и методов, называемых собирательно членами класса. После того как сделан выбор по всем пунктам, мастер автоматически образует необходимые переменные уровня модуля, объявления событий и процедуры Property Let и Property Get для каждого свойства.У объекта UserControl (как Вы помните, это тот самый объект, на котором мы рисуем наш ActiveX-элемент) есть два специальных метода: WriteProperties и ReadProperties. Как ясно из их названия, они предназначены для записи и для чтения свойств. Спрашивается, куда и откуда? Ответ содержится в параметрах этим методов, а именно в методе WriteProperties свойства записываются в переменную PropBag типа PropertyBag , а в методе ReadProperties - свойства читаются из этого самого PropBag. Почему же их в этот самый PropBag надо записывать и потом читать? Зачем все эти сложности? Для ответа вспомним, что происходит с нашим ActiveX-элементом, сколько раз и когда он рождается и умирает.
Действия программиста |
Что происходит с экземпляром ActiveX-элемента |
Размещение ActiveX-элемента на форме (путём двойного щелчка на панели элементов). |
1.Вызывается метод Initialize. 2.Вызывается метод InitProperties (в нем, как правило, устанавливаются стандартные начальные значения для ActiveX-элемента). 3.Создаётся экземпляр ActiveX-элемента времени разработки. |
Установка программистом своих значений свойств для ActiveX-элемента |
Для созданного на предыдущем шаге экземпляра ActiveX-элемента изменяются свойства. |
Запуск программы в среде Visual Basic'а. |
1.Вызывается метод WriteProperties, который запишет новые свойства ActiveX-элемента, заданные программистом на предыдущем этапе, в объект PropBag типа PropertyBag. 2.Старый экземпляр ActiveX-элемента (тот, который был создан на этапе разработки нашим программистом) умирает. |
Запущенная программа появляется на экране. |
1.Создается новый экземпляр ActiveX-элемента. 2.Вызывается метод Initialize для нового экземпляра ActiveX'а. 3.Новый экземпляр ActiveX-элемента берёт свои свойства из объекта PropBag типа PropertyBag (таким образом этот новый экземпляр получает именно те значения свойств, которые были заданы программистом) путем вызова метода ReadProperties. |
При работе программы возможно изменение свойств нашего ActiveX-элемента в результате действий пользователя или самой программы. |
Свойства ActiveX-элемента изменяются на какие-то другие. |
Закрытие программы. |
Экземпляр, созданный на этапе запуска программы, уничтожается. Новые значения свойств никуда не сохраняются . |
Возврат к этапу разработки программы. |
1.Вызывается метод Initialize для нового экземпляра ActiveX'а. 2.Путем вызова метода ReadProperties новый экземпляр ActiveX-элемента берёт свои свойства из объекта PropBag типа PropertyBag (таким образом этот новый экземпляр получает именно те значения свойств, которые были заданы на этапе разработки программистом). |
21-25.Элемент управления CommonDialog для создания диалоговых окон
Все диалоговые окна, перечисленные в начале раздела "Диалоговые окна", можно создать с помощью элемента управления commonDialog. Прежде чем его использовать, необходимо подключить к проекту библиотеку Microsoft Common Dialog Control 6.0 через диалоговое окно Components (Компоненты) среды проектирования.
Для вызова диалоговых окон необходимо использовать соответствующие каждому из этих окон методы элемента управления commonDialog, указанные в табл. 7.11.
Таблица 7.11. Методы элемента управления CommonDialoq
Метод |
Описание |
ShowOpen |
Вызывает диалоговое окно, используемое для открытия файла |
ShowSave |
Вызывает диалоговое окно, используемое для сохранения файла |
ShowColor |
Вызывает диалоговое окно настройки цветовой палитры |
ShowFont |
Вызывает диалоговое окно настройки шрифтов текста |
ShowPrinter |
Вызывает диалоговое окно настройки печати и диалоговое окно печати |
ShowHelp |
Подключает справочную систему в стиле Windows |
Для изучения диалоговых окон, образуемых с помощью элемента управления CommonDialog, создадим небольшой проект. Выполните следующие действия:
1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый) и в открывшемся диалоговом окне дважды щелкните мышью на значке Standard EXE.
2. Присвойте проекту имя MySmallProject. Для этого откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект). После переименования проекта эта команда примет вид MySmallProject Properties (Свойства MySmallProject).
3. Подключите к проекту библиотеку Microsoft Common Dialog Control 6.0. Для этого в меню Project (Проект) выберите команду Components, в открывшемся диалоговом окне Components (Компоненты) установите флажок, расположенный рядом с названием этой библиотеки, и нажмите кнопку ОК.
4. Задайте наименование формы проекта FormForControlCommDiaiog.
5. Используя свойство caption формы, введите заголовок окна Форма для проверки диалогов CommonDialog.
6. Добавьте в форму элемент управления CommonDialog, дважды щелкнув мышью кнопку CommonDialog на панели элементов управления. Если эта панель отсутствует на экране, то в меню View (Вид) выберите команду TooIBox (Панель инструментов).
7. Присвойте элементу управления CommonDialog наименование cdMyDialog.
8. Добавьте в форму кнопку управления типа commandButton и назовите ее cbControl. Эта кнопка будет использоваться нами для вызова диалогового окна по событию click.
9. Используя свойство caption, введите название кнопки Проверка диалогов CommonDialog.
Полученное приложение представлено на рис. 7.21. Этот проект, содержащий элемент управления commonDialog, будем использовать для создания диалоговых окон и знакомства с ними, размещая в событии click кнопки cbControl код настройки параметров требуемого диалогового окна и вызова соответствующего ему метода.
Диалоговое окно открытия файла
Диалоговое окно открытия файла предназначено для поиска файлов, используемых в программе. Имя выбранного файла или списка файлов возвращается в свойстве FileName объекта CommonDialog. Для вызова диалогового окна открытия файла (рис. 7.22) необходимо в событии click кнопки cbControl приложения MySmallProject ввести следующий код:
Private Sub cbControl_Click()
cdlMyDialog.ShowOpen
End Sub
Для ввода кода достаточно дважды щелкнуть на объекте cbcontroi левой кнопкой мыши. При этом открывается редактор кода с шаблоном кода для события click этой кнопки.
Значения для свойства cdlMyDialog. Flags указаны в табл. 7.12.
Таблица 7.12. Значения для метода Flags диалогового окна открытия файла
Константа |
Значение |
Описание |
cdlOFNAllowMultiselect |
&H200 |
Устанавливает возможность множественного выбора файлов в диалоговом окне. Возвращаемые имена файлов находятся в свойстве FileName элемента управления CornmonDialog и разделены пробелами |
cdlOFNCreatePrompt |
&H2000 |
Устанавливает для диалогового окна запрос на подтверждение создания нового файла, если он не существует |
cdlOFNExplorer |
&H80000 |
Назначает диалоговому окну стиль проводника |
cdlOFNExtensionDifferent |
&H400 |
Сообщает, что расширение файла отличается от установленного по умолчанию в свойстве DefaultExt |
cdlOFNFileMustExist |
&H1000 |
Устанавливает возможность ввода в диалоговом окне только имен существующих файлов. При вводе несуществующего файла выдается сообщение об ошибке |
cdlOFNHelpButton |
&H10 |
Указывает на необходимость размещения в диалоговом окне кнопки Справка |
cdlOFNHideReadOnly |
&H4 |
Файлы только для чтения не отображаются |
cdlOFNLongNames |
&H200000 |
Разрешает использование длинных имен файлов |
cdlOFNNoChangeDi r |
&H8 |
" Назначает папку, открываемую по умолчанию при запуске диалогового окна |
cdlOFNNoLongNames |
&H40000 |
Запрещает использование длинных имен файлов |
cdlOFNNoReadOniyReturn |
&H8000 |
Указывает, что выводимые в диалоговом окне файлы не должны быть предназначены только для чтения и не находятся в каталоге, защищенном от записи (Write-protected) |
cdlOFNNoValidate |
&H100 |
Сообщает о вводе недопустимых символов в имени файла |
cdlOFNOverwritePrompt |
&H2 |
Устанавливает для диалогового окна запрос на подтверждение перезаписи существующего файла |
cdlOFNPathMustExist |
&H800 |
Устанавливает требование указания полного пути к файлу |
cdlOFNReadOnly CdlOFNShareAware |
&H1 &H4000 |
Задает проверку флажка Только чтение Задает игнорирование ошибки типа блокировки, занятости файла (Sharing violation errors) |
Диалоговое окно сохранения файла
Для поиска файла, в котором будут сохранены данные из программы, используется диалоговое окно сохранения файла (рис. 7.23). Это диалоговое окно вызывается так же, как окно открытия файла. Для его создания в событии click кнопки cbControl приложения MySmallProject необходимо заменить код на следующий:
Private Sub cbControl_Click()
cdlMyDialog.ShowSave
End Sub
Как видно из рисунка, это диалоговое окно аналогично окну, предназначенному для открытия файла. Флаги этого диалогового окна перечислены в табл. 7.12.
Диалоговое окно настройки цветовой палитры
Для настройки цвета фона формы и расположенных в форме элементов можно использовать диалоговое окно настройки цветовой палитры (рис. 7.24). Для вызова этого диалогового окна необходимо заменить код в событии click кнопки cbcontrol приложения MySmallProject на следующий:
Private Sub cbControl_Click()
cdlMyDialog.ShowColor
End Sub
Константы, используемые для настройки диалогового окна выбора цветовой палитры, перечислены в табл. 7.13. Расширенное диалоговое окно настройки цветовой палитры можно создать с помощью объекта CommonDialog (рис. 7.25).
Таблица 7.13. Значения для метода Flags диалогового окна цветовой палитры
Константа |
Значение |
Описание |
cdlCCFullOpen |
&H2 |
Помещает в диалоговое окно дополнительную кнопку Добавить в набор и цветовое поле с маркером и линейкой назначения оттенка для добавления цветов в поля Дополнительные цвета диалогового окна цветовой палитры (рис. 7.25) |
cdlCCShowHelp |
&H8 |
Добавляет в диалоговое окно кнопку Справка |
cdlCCPreventFullOpen |
&H4 |
Скрывает кнопку Добавить в набор |
cdlCCRGBInit |
&H1 |
Восстанавливает в диалоговом окне исходный набор цветов |
Диалоговое окно настройки шрифтов текста
Для вызова диалогового окна настройки шрифтов (рис. 7.26) необходимо в событие click кнопки cbcontrol ввести следующий код:
Private Sub cbControl_Click()
cdlMyDialog.Flags = cdlCFBoth + cdlCFEffects
cdlMyDialog.ShowFont
End Sub
Флаги диалогового окна настройки шрифтов перечислены в табл. 7.14.
Таблица 7.14. Значения для метода Flags диалогового окна настройки шрифтов
Константа |
Значение |
Описание |
cdlCFANSIOnly |
&H400 |
Назначает выбор только из системных наборов шрифтов Windows |
cdlCFApply |
&H200 |
Добавляет в диалоговое окно кнопку Применить |
cdlCFBoth |
&H3 |
Назначает использование экранных шрифтов принтера, указанного в свойстве hDC |
CdlCFEffects |
&H100 |
Указывает на необходимость размещения в диалоговом окне элементов управления, задающих эффект подчеркивания, зачеркивания и цвета |
cdlCFForceFontExis |
it &H10000 |
Назначает вывод предупреждения об ошибке при выборе несуществующего шрифта |
cdlCFHelpButton |
&H4 |
Добавляет в диалоговое окно кнопку Справка |
cdlCFLimitSize |
&H2000 |
Назначает выбор размеров шрифтов в интервале, указанном в свойствах Min и Мах |
cdlCFNoFaceSel |
&H80000 |
Отключает выбор наименования шрифта |
cdlCFNoSizeSel |
&H1000 |
Отключает выбор размера шрифта |
cdlCFNoSimulations |
&H200000 |
Отключает в диалоговом окне графические шрифты |
cdlCFNoStyleSel |
&H100000 |
Отключает выбор стиля шрифта |
cdlCFNoVectorFonts |
&H800 |
Отключает выбор векторных шрифтов |
cdlCFPrinterFonts |
&H2 |
Назначает выбор только шрифтов принтера, который указан в свойстве hDC |
cdlCFScreenFonts |
&H1 |
Назначает выбор только экранных шрифтов системы |
cdlCFTTOnly |
&H40000 |
Назначает только выбор шрифтов типа True Type |
CdlCFWYSIWYG |
&H8000 |
Назначает выбор только тех шрифтов, которые подходят одновременно и для принтера, и для экрана. При этом должны дополнительно использоваться флаги cdlCFBoth и cdlCFScalableOnly |
Диалоговое окно печати
Диалоговое окно печати можно вызвать с помощью элемента управления
commonDialog, заменив код в событии click кнопки с наименованием cbControl на следующий:
Private Sub cbControl_Click()
cdlMyDialog.ShowPrinter
End Sub
Открытое диалоговое окно показано на рис. 7.27.
Если требуется предварительно настраивать печать, то необходимо установить для свойства Flags значение cdlPDPrintSetup. В этом случае код будет выглядеть следующим образом:
Private Sub cbControl_Click()
cdlMyDialog.Flags = cdlPDPrintSetup
cdlMyDialog.ShowPrinter
End Sub
Запустив приложение MySmallProject, вы получите диалоговое окно
Таблица 7.15. Значения для метода Flags диалогового окна печати
Константа |
Значение |
Описание |
cdlPDAllPages |
&НО |
Возвращает или устанавливает состояние переключателя печати всех страниц |
cdlPDDisablePrintToFile |
&H80000 |
Делает недоступным флажок диалогового окна Печать в файл |
cdlPDHelpButton |
&H800 |
Добавляет в диалоговое окно кнопку Справка |
cdlPDHidePrintToFile |
&H100000 |
Скрывает флажок диалогового окна Печать в файл |
cdlPDNoPageNums |
&H8 |
Скрывает элементы управления в группе Печатать |
cdlPDNoWarning |
&H80 |
Отменяет предупреждение об отсутствии принтера по умолчанию |
cdlPDPageNums |
&H2 |
Делает недоступными элементы управления, расположенные в области Печатать |
cdlPDPrintSetup |
&H40 |
Выводит диалоговое окно настройки печати перед диалогом печати |
cdlPDPrintToFile |
&H20 |
Возвращает или устанавливает состояние флажка Печать в файл |
cdlPDReturnDefault |
&H400 |
Возвращает имя принтера, используемое по умолчанию |
cdlPDUseDevModeCopies |
&H40000 |
Если драйвер принтера не поддерживает создание копий, делает недоступным счетчик Число копий. Если копирование поддерживается, указывает, что номер копии хранится в свойстве Copies |
Справочная система в стиле Windows
Флаги диалогового окна справочной системы перечислены в табл. 7.16. Для использования этого диалогового окна необходимо создать справочную систему для приложения (файл справки).
Таблица 7.16. Значения для метода Flags диалогового окна справочной системы
Константа |
Значение |
Описание |
cdlHelpCommandHelp |
&Н102 |
Вызывает справочную систему отдельной командой |
cdlHeIpContents |
&НЗ |
Вызывает содержание справочной системы |
cdlHelpContext |
&H1 |
Вызывает отдельную тему справочной системы |
cdlHelpContextPopup |
&H8 |
Вызывает тему справки по индексу |
cdlHelpIndex |
&H3 |
Вызывает указатель справочной системы |
cdlHelpKey |
&H101 |
Вызывает справочную систему по ключевому слову |