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

Последняя надстройка помогает документировать код на уровне процедуры. Я назвал ее CodeDoc - Ргос.

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

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

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

4. Откройте папку Designers в окне проекта и дважды щелкните на объекте Connect.

Создание утилиты комментирования на уровне процедуры - student2.ru

Создание утилиты комментирования на уровне процедуры - student2.ru

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

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 был снят. Наша надстройка обладает графическим интерфейсом и не работает в режиме командной строки.

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

10. В секции (General)(Declarations) удалите строку

Dim mfrmAddln As New frmAddln

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

Set mcbMenuCommandBar = AdToAddInCommandBar("My AddIn")

строкой

Set mcbMenuCommandBar = AdToAddInCommandBar("CodeDoc - Proc")

12. Удалите из процедуры события AddinInstance_OnDisconnection следующий фрагмент:

Unload mfrmAddIn

Set mfrmAddIn = Nothing

13. Удалите текущее содержимое функции 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 AddToAddInCommandBarErr

Проверить, удается ли найти панель 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 frmAddIn.picButton.Picture

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

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

' Вернуть ссылку на новую кнопку

Set AddToAddlnCommandBar = cbMenuCommandBar

AddToAddlnCommandBarErr:

End Function

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

15. Замените содержимое процедуры Show конструктора следующим:

Sub Show()

Dim proc As String

Dim x As String

Dim 1 As String

' Получить имя процедуры proc = GetProcedureName()

With VBInstance.ActiveCodePane.CodeModule ' Получить верхнюю строку процедуры

' Создать комментарии х = ..... & vbCrLf & _

"' Автор: " & vbTab & vbTab & _

" Введите свое имя" & _

vbCrLf & "' Создан: " & _

vbTab & vbTab & _

Format$(Date$, "mm-dd-yyyy") & _

vbCrLf & "' Описание: " & _

vbCrLf & ..... & vbTab & vbTab & _

vbTab & vbTab & "Введите " & _

"описание процедуры." & vbCrLf & '" Обновления: " &vbCrlf & _

" ' " & vbTab & vbTab & vbTab &_ vbTab & "Введите описание обновлений." & _ vbCrLf & " ' "Вставить над объявлениями процедуры .InsertLines 1, х End With End Sub

16. Удалите содержимое процедуры Hide.

17. Создайте функцию GerProcedureName:

Public Function GetProcedureName() As String Dim a As Long Dim b As Long Dim с As Long

With VBInstance.ActiveCodePane

Определить текущую строку курсора .GetSelection currentline, a, b, с

Передать номер строки функции ProcOfLine() GetProcedureName = .CodeModule. _ ProcOfLine(currentline, _ vbext_pk_Proc) End With End Function

18. Откройте форму frmAddIn двойным щелчком в соответствующей строке окна проекта.

19. Удалите с формы кнопки ОК и Cancel.

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

Создание утилиты комментирования на уровне процедуры - student2.ru

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

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

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

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

Откомпилируйте готовую надстройку и загрузите ее в IDE с помощью диспетчера надстроек, как это было сделано для предыдущей надстройки. После загрузки надстройки панель инструментов должна выглядеть так, как показано на рис. 16.32.

Создание утилиты комментирования на уровне процедуры - student2.ru

Документировать процедуру

Рис. 16.32. Кнопка надстройки на панели Edit

Рассмотрим работу надстройки на следующем несложном примере:

1. Откройте окно программы для модуля, в который добавляются комментарии. В нашем примере следует открыть окно программы для конструктора Connect.

2. Выберите процедуру, в которой создается комментарий, — для этого щелкните мышью внутри тела процедуры. Для нашего примера выберите функцию

GetProcedureName().

3. Нажмите кнопку CodeDoc - Ргос на панели Edit.

4. При запуске надстройки в процедуру автоматически включается блок комментариев. Его примерный вид показан на рис. 16.33.

Рис. 16.33 Блок комментариев на уровне процедуры

Создание утилиты комментирования на уровне процедуры - student2.ru

Комментарий готов, вам остается лишь заполнить пару строк. Если в процедуру будут внесены какие-либо изменения, включите их описание в комментарий. Хорошие комментарии — залог жизнеспособности и устойчивости вашей программы. Они не только упрощают чтение кода, но и оказываются особенно полезными при работе в составе группы. Впрочем, даже если вы работаете в одиночку, комментарии все равно важны. Представьте себе, что через год вам потребуется внести в программу какие-нибудь изменения или исправить ошибку. Будете ли вы помнить весь исходный текст программы и логику ее работы после столь длительного перерыва?

Что нового мы узнали?

В этом уроке мы научились:

0 Пользоваться надстройками для упрощения работы над приложением.

0 Пользоваться диспетчером и панелью надстроек для подключения надстроек к IDE.

0 Создавать свои собственные надстройки с помощью шаблона Add-In.

0 Пользоваться надстройками семейства CodeDoc для последовательного документирования текста программы.

17 урок

Использование ActiveX

Наши рекомендации