- •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.Создание и заполнение произвольных областей. Пример.
6. Раннее и позднее связывание с объектом. Примеры.
Скорость выполнения приложения во многом зависит от того, каким образом VB осуществляет связывание объектной переменной с объектом. Существует раннее и позднее связывание .
Раннее связывание осуществляется при объявлении объектной переменной с явным указыванием имени класса. Например,
Dim Obj1 As New Form1
Dim Obj2 As New Class1
Dim ObjWord As New Word.Application
Dim ObjExcel As New Excel.Application
Dim ObjAccess As New Access.Application
Раннее связывание происходит на этапе компиляции и выполняется быстрее. При раннем связывании перед написанием кода необходимо загрузить в память библиотеку с классом, используя команду Project\References, окно References и список Available References. После чего следует приступать к созданию объектной переменной (уже определенного класса) с ключевым словом New.
Если же при объявлении объектной переменной используется универсальный тип Object, Variant, Control, то VB осуществляет позднее связывание переменной с объектом. Например,
Dim mObject As Object, Obj As Control
For Each Obj In Me.Controls
If TypeName(Obj) = "TextBox" Then Obj.BackColor = 0
Next
Set mObject=CreateObject(“Word.Application”) 'Установить связь
………………………………………………………
Set mObject=Nothing 'Разорвать связь объекта с приложением Word
Set mObject=CreateObject(“Excel.Application”) 'Установить связь
………………………………………………………
Set mObject=Nothing 'Разорвать связь объекта с приложением Excel
Позднее связывание оправдано тогда, когда невозможно заранее определить, какие типы объектов будут использоваться при выполнении программы, что требует дополнительных затрат времени на анализ допустимых объектов. При первом обращении к свойствам и методам объекта происходит событие Initialize – создание объекта, а в строке Set mObject=Nothing наступает событие Terminate – уничтожение объекта и освобождение памяти.
К недостаткам раннего связывания можно отнести привязанность создаваемого Вами приложения к конкретной версии библиотеки объектов. Выход в свет новой версии продукта, объектную модель которого Вы используете посредством раннего связывания, приведет к необходимости обновления Вашего приложения. К достоинству раннего связывания можно отнести способность отображать список свойств и методов объекта после ввода точки при написании кода. Обычно раннее связывание используется на стадии отладки приложения. Завершающая стадия разработки приложения осуществляется обычно на основе позднего связывания, не зависящего от новых версий используемых в проекте объектных моделей.
7. Способы объявления событий классов. Примеры.
Каждый класс кроме свойств и методов имеет набор собственных событий. События – это реакция объекта на действие системы, пользователя и других приложений. События, определяемые пользователем, могут объявляться как внутри модуля класса (в области GD окна Code класса) с помощью команды File\New\Event или кнопки окна Class Builder, так и внутри модуля формы одним и тем же оператором Event. Параметры, передаваемые процедуре события, должны быть указаны в той же строке объявления события. Например,
Public Event WWW()
Public Event XXX(ByVal A As Long, ByVal B As Long)
Для генерации (выполнения) события предназначен оператор RaiseEvent, которому в качестве параметра передается имя события. Например,
Public Sub Text1_Change()
RaiseEvent WWW 'Реализация события WWW
End Sub
Public Sub Command1_Click()
RaiseEvent XXX(500,300) 'Реализация события XXX
End Sub
Контейнер (модуль класса или формы), в котором используется объект, должен содержать процедуры-события.
Пример 59. Объявить событие в модуле класса, а запрограммировать его в модуле формы.
Пусть событие (назовем его MTS) имеет два параметра. Первый – числовой, второй – логический. Событие будет реализовываться в методе Long1. Выполните следующие действия.
· Создайте новый проект с шаблоном Standard EXE.
· С помощью команды Project\Add Class Module добавьте модуль класса с именем Class1 в проект, используя шаблон Class Module на закладке New.
· Поместите в него следующий код.
Public Event MTS(ByVal Percent As Single, ByRef Cancel As Boolean)
Public Sub Long1(ByVal f As Single, c As Boolean)
RaiseEvent MTS(f, c) 'Вызов события MTS с двумя параметрами
End Sub
· Теперь добавьте в область GD окна Code модуля формы следующий код:
Private WithEvents mW As Class1, nCancel As Boolean, r As Single
'Ключевое слово WithEvents означает, что объект mW содержит события
Private Sub Command1_Click()
nCancel = False
r = Rnd
Set mW = New Class1 'Создание нового объекта на основе класса
Call mW.Long1(r, nCancel) 'Обращение к методу Long1
Text2 = nCancel 'Выводим значение, возвращаемое из события
Set mW = Nothing
End Sub
Private Sub Form_Load()
Text1 = Format(r, "0 %")
Text2 = ""
End Sub
Private Sub mW_MTS(ByVal Percent As Single, _
Cancel As Boolean)
m% = CInt(100 * Percent)
Text1 = m & "%"
If m >= 50 Then Cancel = True
End Sub