Создание утилиты комментирования на уровне приложения — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Создание утилиты комментирования на уровне приложения



Надстройка, которой мы сейчас займемся, называется CodeDoc — App. Она собирает подробную информацию о приложении. Она документирует свойства проекта, составляет список форм, модулей и классов проекта, а также перечень внешних ссылок. Чтобы не возиться со всеми тонкостями объектов-надстроек, мы воспользуемся шаблоном надстройки Visual Basic. Он заметно сокращает объем работы. Просматривая исходный текст проекта, вы всегда сможете разобраться, как он выполняет свою работу.

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

2. Выберите значок Add-In (рис. 16.23) и нажмите кнопку ОК, чтобы создать проект.

3. Задайте свойству Name созданного проекта значение CodeDocApp.

4. Откройте папку Designers в окне проекта и дважды щелкните на объекте Connect. На экране появляется описание объекта-надстройки, изображенное на рис. 16.24.

5. В поле Add-In Display Name введите строку CodeDoc - App. Это имя будет отображаться в диспетчере и на панели инструментов.

6. В поле Add-In Description введите строку Приложение CodeDoc - комментирование на уровне приложения. Это описание будет отображаться в диспетчере надстроек.

7. В списке Application выберите строку Visual Basic, а в списке Application Version -строку Visual Basic 6.0.

8. В списке Initial Load Behavior выберите строку Startup. Проследите за тем, чтобы флажок Addin is Command -Line Safe был снят. Наша надстройка обладает визуальным интерфейсом и не работает в режиме командной строки.

Рис. 16.23. Выбор шаблона проекта Add-In

Рис. 16.24. Конструктор надстроек

9. Откройте окно программы — щелкните правой кнопкой мыши на объекте Connect и выполните команду View Code из контекстного меню.

10. Примерно в середине процедуры события AddinInstance_OnConnection замените строку

Set mcbMenuCommandBar = AdToAddInCommandBar("My Addln")

строкой

Set mcbMenuCommandBar = AdToAddInCommandBar("CodeDoc - App")

11. Удалите текущее содержимое функции AddToAddInCommandBar() и введите следующее:

Function AddToAddInCommandBar(sCaption As String) As Office.CommanBarControl Dim cbMenuCommandBar As Office.CommandBarControl Dim cmd As Office.CommandBarButton Dim cbMenu As Object

Если произошла ошибка, пропустить основной код функции On Error Goto AddToAddlnCommandBarErr

Проверить, удается ли найти панель Edit If cbMenu = VBInstance.CommandBars("Edit") If cbMenu Is Nothing Then

панель недоступна, попытка закончилась неудачей Exit Function End If

Добавить кнопку на панель Set cbMenuCommadBar = cbMenu.Controls.Add(1, , , 11)

Настроить кнопку... Set cmd = cbMenuCommandBar

Скопировать значок с формы надстройки Clipboard.SetData frmAddln.picButton.Picture

Вставить значок из буфера обмена cmd.PasteFace

Снабдить его понятной подсказкой cmd.ToolTiptext = "Документировать приложение" Set cmd = Nothing

Вернуть ссылку на новую кнопку Set AddToAddlnCommandBar = cbMenuCommandBar



AddToAddlnCommandBarErr:

End Function

12. Сохраните проект.

13. Закройте окно программы для объекта Connect.

14. Откройте форму frmAddln, дважды щелкнув на ней в окне проекта.

15. Создайте надпись в левом верхнем углу формы. Задайте ее свойству Name значение IblDescription, а свойству Caption — значение Описание...

16. Растяните надпись по горизонтали так, чтобы ее правый край находился на расстоянии в одну линию сетки от кнопки ОК. Растяните надпись по вертикали так, чтобы ее нижний край совпадал с нижним краем кнопки Cancel.

17. Создайте на форме рамку. Задайте ее свойству Name значение fraOptions, а свойству Caption — значение &Параметры.

18. Расположите рамку так, чтобы она находилась на одну линию сетки ниже надписи и правее левого края формы.

19. Растяните рамку так, чтобы ее правый и нижний края отстояли на одну линию сетки от правого и нижнего краев формы.

20. Создайте на форме флажок. Задайте его свойству Name значение chkProject Summary, а свойству Caption — значение Сведения о &проекте.

21. Создайте под ним еще один флажок. Задайте его свойству Name значение chkComponents, а свойству Caption — значение Сведения о &компонентах.

22. Создайте под ним еще третий флажок. Задайте его свойству Name значение chkReferences, а свойству Caption — значение Сведения о &ссылках.

23. Создайте в правой части формы графическое поле. Задайте его свойству Name значение picButton, а свойству Visible — значение False.

ПРИМЕЧАНИЕГрафическое поле используется в качестве контейнера для хранения значка, отображаемого на кнопке надстройки. Поскольку объект Control панели команд не имеет свойства Icon или Picture, мы должны воспользоваться его методом PasteFace, чтобы вставить значок из буфера обмена. Тем не менее перед вставкой необходимо скопировать значок в буфер с помощью объекта Visual Basic Clipboard. Графическое поле будет служить источником для операции копирования/вставки.

Значок можно выбрать среди тех, которые поставляются с Visual Basic, или нарисовать свой собственный в стандартном графическом редакторе Paint. Если вам захочется использовать для настройки специальный значок, попробуйте загрузить файл CodeDocApp.bmp с Web-узла издательства «Питер» (www.piter-press.ru).



24. Дважды щелкните на свойстве Picture графического поля в окне свойств.

25. Выберите графическое изображение для кнопки на панели надстроек. В частности, просмотрите файлы в каталоге \Program Files\Microsoft Visual Studio\ Common\Graphics\Bitmaps\Tlbr_Win95.

26. Сохраните проект.

27. Примерный вид формы показан на рис. 16.25. Рис. 16.25. Форма надстройки в режиме конструирования

28. Задайте свойству Name кнопки ОК значение cmdOK.

29. Задайте свойству Name кнопки Cancel значение cmdCancel.

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

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

Private Sub cmdOK_Click()

Добавить новый программный модуль AddModule

Документировать приложение DocumentApp

' Убрать диалоговое окно Connect.Hide End Sub

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

Private Sub Form_Load() Dim msg As String

msg = "CodeDoc-App позволяет " &

"выбрать параметры на уровне проекта " & "и создает программный модуль " & _ "с перечислением ссылок проекта."

lblDescription.Caption = msg End Sub

33. Создайте процедуру с именем DocumentApp():

Public Sub DocumentAppO Dim X As String

Dim msg As String

If chkProjectSummary.Value = 1 Then

Сведения о проекте X = ListSummaryO End If

If chkComponents.Value = 1 Then

' Сведения о компонентах, использованных в проекте

X = X & ListComponentsO End If

If chkReferences.Value = 1 Then

' Сведения о ссылках, использованных в проекте

X = X & ListReferencesO End If

' Добавить комментарии в начало модуля With VBInstance.ActiveCodePane.CodeModule

.InsertLines 1, X & .....

End With

' Сообщить пользователю о выполнении работы msg = "Проект успешно документирован!" MsgBox msg, vblnformation, "Готово!" End Sub

Эта процедура определяет, какие аспекты проекта необходимо документировать. Как видно из программы, она проверяет состояние флажков и вызывает соответствующие функции, генерирующие комментарии. Перейдем к написанию функций, на примере которых вы поймете, как надстройки работают с IDE:

1. Включите следующую процедуру в секцию (General)(Declarations) формы:

Private Sub AddModuleO Dim ndx As Integer Dim i As Integer

With VBInstance.ActiveVBProject ' Существует ли модуль? For i = 1 To .VBComponents.Count

Если существует, создавать не нужно If .VBComponents(i).Name = "AppSpecs" Then

Активизировать модуль для его дополнения .VBComponents(i).Activate

Создавать новый файл не нужно

Exit Sub End If Next

' Создать программный модуль

.VBComponents.Add vbext_ct_StdModule

ndx = .VBComponents.Count

' Переименовать

.VBComponents(ndx).Name = "AppSpecs" End With End Sub

2. Следующая функция составляет список всех форм, модулей, классов и конструкторов, входящих в проект:

Public Function ListComponentsO As String Dim i As Integer Dim X As String

With VBInstance

' Создать заголовок секции X = " " & vbCrLf & '" Компоненты проекта: " & _ vbCrLf

If .ActiveVBProject.VBComponents.Count > 0 Then

Составить список компонентов For i = 1 To _

.ActiveVBProject.VBComponents.Count

X = X & ..... & vbTab & _

.ActiveVBProject.VBComponents(i).

Name & vbCrLf Next Else

Компонентов нет

X = X & ..... & vbTab & "Нет."

End If End With

Возвратить список компонентов ListComponents = X End Function

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






Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...





© cyberpedia.su 2017 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав

0.011 с.