Студопедия

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

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

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






Все вместе






Настал момент, которого мы так долго ждали. Следующий пример демонстрирует возможности новых элементов — дерева, табличного списка и списка изображений. Давайте посмотрим, как они работают вместе:

1. Создайте в Visual Basic новый проект командой File > New и выберите стандартный ЕХЕ-файл (Standard EXE).

2. Щелкните на проекте Projectl в окне проекта и задайте свойству Name проекта значение ObjectExplorer.

3. Выделите форму Form1 и задайте ее свойству Name значение frmMain.

4. Задайте свойству Caption значение Object Explorer.

5. Щелкните правой кнопкой мыши на панели элементов и выберите из контекстного меню команду Components.

6. Прокрутите список в открывшемся диалоговом окне Components и установите флажок рядом со строкой Microsoft Windows Common Controls 6.0. Нажмите кнопку OK, чтобы добавить элемент на панель.

7. Поместите на форму frmMain список изображений, для чего дважды щелкните на списке изображений в панели. Когда список появится на форме, переместите его в правый нижний угол формы и задайте его свойству Name значение imlCategories.

8. В окне свойств дважды щелкните на строке Custom, чтобы открыть диалоговое окно со страницами свойств элемента.

9. Перейдите на вкладку Images. Нажмите кнопку Insert Picture, чтобы добавить изображение в список.

10. В диалоговом окне Select picture выделите файл Closed.bmp из каталога Common\ Graphics\Bitmaps. Нажмите кнопку Open, чтобы включить графический файл в элемент, и нажмите кнопку ОК.

11. Поместите на frmMain еще один список изображений. Задайте его свойству Name значение imlItems. Расположите его рядом со списком imlCategories.

12. Повторите шаги 8-10, добавьте в элемент изображение Leaf.bmp и нажмите кнопку Open.

13. Закройте диалоговое окно со страницами свойств кнопкой ОК.

14. Создайте дерево на форме frmMain. Задайте его свойству Name значение tvw-Categories.

15. В окне свойств дважды щелкните на строке Custom, чтобы открыть диалоговое окно со страницами свойств элемента.

16. На вкладке General этого окна задайте свойству Style значение 7 - tvwTree-HnesPlusMinusPictureText, свойству LabelEdit — значение 1 - Manual, свойству Indentation — значение 283 и свойству ImageList — значение imlCategories.

17. Закройте диалоговое окно со страницами свойств кнопкой ОК.

18. Переместите дерево tvwCategories в левую часть формы.

19. Создайте табличный список на форме frmMain. Задайте его свойству Name значение Ivwltems.

20. В окне свойств дважды щелкните на строке Custom, чтобы открыть диалоговое окно со страницами свойств элемента.

21. Задайте свойству View значение 3 - IvwReport, свойству Arrange — значение 2 -IvwAutoTop, свойству LabelEdit — значение 1 - Manual, а свойству OLEDropMode -значение 1 - OLEDropManual.

22. Перейдите на вкладку Image Lists.

23. Введите в поле Normal значение imlltems. Тем самым вы связываете табличный список со списком изображений imlltems.

24. Перейдите на вкладку Column Headers.

25. Нажмите кнопку Insert Column. В коллекцию добавляется первый объект заголовка столбца.

26. Введите в поле Text значение Название.

27. Закройте диалоговое окно со страницами свойств кнопкой ОК.

28. Переместите список imlltems в правый верхний угол формы. Примерный вид формы показан на рис. 3.22.

29. Сохраните свою работу командой File > Save Project.

 

 

Рис. 3.22. Форма Object Explorer в режиме конструирования

 

30. Дважды щелкните на форме frmMain, чтобы открыть окно программы.

31. Включите следующий код в процедуру события Form_Resize: Private Sub Form_Resize()

 

Dim mid1 As Integer

Dim mid2 As Integer

 

Mid1 = (ScaleWidth / 2) - 50

mid2 = (ScaleWidth / 2) + 50

 

If WindowState < > vbMinimized Then

tvwCategories.Move 0, 0, mid1, ScaleHeight

Ivwltems.Move mid2, 0, ScaleWidth - mid2, ScaleHeight

End If

End Sub

 

Приведенный фрагмент кода стоит рассмотреть подробнее. В первых двух строках объявляются две переменные, mid1 и mid2. Две следующие строки присваивают им значения, обозначающие расстояние от центра формы до левой и правой границ. Прибавляя и вычитая 50, мы создаем аккуратную границу между двумя элементами.

Строка If...Then говорит о том, что программа должна выполнить следующий фрагмент лишь в том случае, если форма не находится в свернутом состоянии. Если форма свернута, при попытке перемещения и изменения размеров элементов возникнет ошибка. Оператор If...Then подробно рассматривается в уроке 6, «Логика и последовательность выполнения программы».

В процедуру события Form_Load() вставьте следующий фрагмент:

 

Private Sub Form_Load()

Dim cat As Node

 

' Включить в дерево новые узлы

With tvwCategories.Nodes

Set cat =.Add(,, " root", " Объекты", 1)

Set cat =.Add(" root", tvwChild,, " Встроенные”, 1)

Set cat =.Add(" root", tvwChild,, " Проводник", 1)

Set cat =.AddC'root", tvwChild,, " Internet", 1)

End With

End Sub

 

В первой строке создается переменная типа Node. Она позволит нам работать с коллекцией Nodes в табличном списке. Следующая строка (With...) сообщает компилятору Visual Basic о том, что он должен работать с коллекцией Nodes элемента tvwCategories.

Первая строка внутри оператора With добавляет узел на корневом уровне дерева. Мы присваиваем ему текстовое значение " Объекты", поскольку в дереве будет выводиться иерархический список объектов. Три следующие строки добавляют в корневой объект узлы следующего уровня (tvwChild). Каждый узел имеет собственное описание: в одном содержатся встроенные элементы, в другом — элементы в стиле Проводника и в третьем — элементы для работы с Интернетом. Помните о том, что каждый узел на самом деле представляет собой категорию — это означает, что в нем могут «содержаться» другие объекты.

Добавьте следующий фрагмент в секцию (General)(Declarations) формы frmMain:

 

Option Explicit

Private Sub ListExplorer()

Dim itm As Listltem

 

With Ivwltems.Listltems.Clear Set itm =, Add(,, " Дерево", 1)

Set itm =.Add(,, " Табличный список", 1)

Set itm =.Add(,, " Список изображений", 1)

Set itm =.Add(,, " Панель инструментов", 1)

Set itm =.Add(,, " Строка состояния", 1)

End With

 

End Sub

 

Private Sub Listlnternet()

Dim itm As Listltem

 

With Ivwltems.Listltems

.Clear

Set itm =.Add(,, " Web-броузер", 1)

Set itm =.Add(,, " ShellFolderView", 1)

Set itm =, Add(,, " Inet", 1)

Set itm =.Add(,, " Winsock", 1)

End With

End Sub

 

Private Sub Listlntrinsics()

Dim itm As Listltem

 

With Ivwltems.Listltems

.Clear

Set itm =, Add(,, " Графическое поле", 1)

Set itm =, Add(,, " Надпись", 1)

Set itm =.Add(,, " Текстовое поле", 1)

Set itm =.Add(,, " Рамка", 1)

Set itm =, Add(,, " Кнопка", 1)

Set itm =, Add(,, " Флажок", 1)

Set itm =.Add(,, " Переключатель", 1)

Set itm =.Add(,, " Комбинированное поле", 1)

Set itm =, Add(,, " Список", 1)

Set itm =.Add(,, " Горизонтальная полоса прокрутки", 1)

Set itm =.Add(,, " Вертикальная полоса прокрутки", 1)

Set itm =, Add(,, " Таймер", 1)

Set itm =.Add(,, " Список дисков", 1)

Set itm =.Add(,, " Список каталогов", 1)

Set itm =.Add(,, " Список файлов", 1)

Set itm =.Add(,, " Фигура", 1)

Set itm =, Add(,, " Линия", 1)

Set itm =.Add(,, " Рисунок", 1)

Set itm =.Add(,, " Данные", 1)

Set itm =, Add(,, " OLE", 1)

End With

End Sub

 

Первая строка, Option Explicit, вводит обязательное объявление переменных в проекте. Три последующие процедуры очень похожи. В каждой объявляется переменная типа Listltem с именем itm. Эта переменная используется для работы с коллекцией List Items элемента Ivwltems.

Оператор With... сообщает компилятору о том, что для следующего фрагмента используется коллекция Listltems табличного списка. Следующая команда,. Clear, очищает коллекцию Listltems и удаляет из нее все занесенные ранее элементы. Последующие команды включают в коллекцию новые объекты типа Listltem.

Наконец, включите следующий фрагмент в процедуру события NodeClick() элемента tvwCategories:

 

Private Sub tvwCategories_NodeClick(ByVal Node As ComctlLib.Node)

Select Case Node

Case Is = " Встроенные"

Listlntrinsics

Case Is = " Проводник"

ListExplorer

Case Is = " Internet"

Listlnternet

End Select

End Sub

 

Сохраните проект командой File > Save и запустите программу клавишей F5.

Внешний вид формы показан на рис. 3.23. В левой части формы находится дерево, а в правой — табличный список. Обратите внимание — при изменении размеров формы происходит автоматическое масштабирование элементов. Откройте папку Объекты двойным щелчком. Затем щелкните на любой категории, чтобы просмотреть ее содержимое.

 

 

 

Рис. 3.23. Программа Object Explorer в действии

 

Не беспокойтесь о процедурах перетаскивания OLE. Мы подробно рассмотрим их в уроке 11, когда у вас появится некоторый опыт программирования.

 






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