Вряд ли вам удастся запомнить все свойства различных форм и элементов. Чтобы узнать их значения, можно поочередно открыть каждую форму и щелкнуть на каждом элементе с открытым окном свойств. Впрочем, это займет немало времени. Нет ли более удобного способа для получения списка всех объектов, свойств и программного кода? Попробуйте воспользоваться командой File > Print. Диалоговое окно Print, открывающееся при выполнении этой программы, показано на рис. 9.18.
Рис. 9.18. Диалоговое окно Print
Диалоговое окно Print
Диалоговое окно Print содержит несколько параметров, разделенных на две основные группы: Range и Print What. Группа Range объединяет переключатели Selection, Current Module и Current Project, o которых рассказывается ниже.
Selection
Печатается только фрагмент кода, выделенный в окне программы.
Current Module
Печатается информация о форме, с которой вы в настоящий момент работаете в окне конструктора. Печатаемая информация зависит от состояния флажков в группе Print What (см. далее). В проекты могут входить и другие модули, помимо модулей форм; если такой модуль является текущим, на печать выводится его код.
|
|
Current Project
Переключатель выводит информацию о всех модулях форм, входящих в проект. К ней добавляется информация о всех остальных модулях (стандартных и модулях классов). И снова состав печатаемых данных зависит от состояния флажков в группе Print What.
Группа Print What диалогового окна Print содержит флажки Form Image, Form As Text и Code, описанные в ближайших разделах.
Form Image
На печать выводится растровое изображение формы на момент выполнения программы. С помощью этого флажка можно получить серию экранных снимков, по которым потенциальные пользователи оценят вашу программу. Кроме того, этот флажок (в сочетании со следующим - Form As Text) иногда используется для описания пользовательского интерфейса приложения, хотя для создания печатной документации этот метод не слишком удобен - каждая форма выводится на отдельной странице и вдобавок полученное изображение нелегко вставить в документ. Все иллюстрации к этой книге были получены другим способом.
ПОДСКАЗКА Если вам захочется узнать, как это делается (например, вы захотите вставить изображение формы в справочный файл или руководство пользователя), попробуйте скопировать окно в буфер обмена Windows. Для этого следует нажать Alt одновременно с клавишей Print Screen. Изображение, хранящееся в буфере, можно вставить в документ или сохранить в формате.BMP. Практически во всех текстовых редакторах или издательских программах, используемых при подготовке руководств, можно вставлять файлы в формате.PCX или.BMP. Чтобы поместить копию экрана в справочный файл, достаточно вставить ссылку на растровое изображение в исходный файл в формате.RTF
|
|
Code
Наконец, мы добрались и до традиционных листингов программ. Флажок Code печатает все процедуры событий формы и ее элементов. Если в группе PrintRan установлен переключатель Project, будут напечатаны все процедуры событий во форм и элементов вашего приложения. Флажок Code чрезвычайно полез(отладке или документировании приложений. Код упорядочивается по В листинге каждой формы процедуры упорядочиваются в алфавитном поря, свойству Name объекта. Процедуры событий форм всегда начинаются с префикса Form_, независимо от текущего значения свойства Name формы. Следовательно процедуры формы вряд ли будут выведены раньше процедур других элементов Например, процедура события cmdOK_Click будет стоять перед процедурой Form_Load. (предполагается, что на форме есть кнопка с именем cmdOK и в обоих процедурах был введен код). Если процедура события не содержит кода, пустой шаблон не выводится. Кроме процедур событий приложения Visual Basic нередко с-и другие процедуры и функции, например находящиеся в формах и стандарт модулях. Такие процедуры и функции тоже включаются в распечатку.
Form As Text
В листинг включаются свойства формы, а также свойства всех элементов, находя щихся на ней. Если вам потребуется воссоздать и отладить приложение, с. это по списку свойств будет гораздо проще, чем по простому изображению формы. Учтите, что листинг содержит не все свойства — иначе в сложном приложении он бы растянулся на сотню и более страниц. Выводятся лишь те свойства, для которых были изменены значения по умолчанию (обычно в их число входят Name и Caption); свойства, связанные с положением и размерами объекта (Left, Top, Height и Width); свойства, определяющие единицы измерений и систему координат (свойства Scale...); свойство TabIndex, если оно используется; и свойство LinkTopic для форм. На LinkTopic можно пока не обращать внимания. Листинг также содержит элементы меню, для которых указываются значения свойства Shortcut и расширенного свойства Caption.
Комментирование кода
Привыкайте комментировать свои программы. Комментарием называется текстовая строка, начинающаяся с апострофа. Он не содержит программного кода. Комментируйте наиболее сложные фрагменты своих программ, а также те места, к которым необходимо привлечь внимание читателя. Комментарии предназначены исключительно для программиста, Visual Basic игнорирует их во время выполнения приложения. Они также выводятся на печать. Иногда кажется, что комментарии излишни — вам программа кажется очевидной! Но разберутся ли в ней ваши коллеги или даже вы сами спустя несколько недель? Несколько комментариев избавят вас от многих часов утомительного труда. Особенно важно вставлять комментарии в начале и в середине самых сложных участков кода.
Чтобы включить в процедуру комментарий, введите в начале строки символ «апостроф» ('). Ниже приведен пример комментария:
'Строка комментария
Комментарии можно включать и в конец строки, в этом случае они также начинаются с апострофа:
cmdOK.Enabled = True ' Снимаем блокировку с кнопки OK
Дополнительная информация о комментариях приведена в уроке 12, «Отладка приложений».
Просмотр результатов
Списки свойств и листинги программ можно включать и в другие документы. Ниже приведен список свойств вместе с текстом программы из урока 5. При этом текст листинга не обязательно набирать заново — можно создать текстовый файл и вставить его в нужный документ. В этом примере я установил режим печати в файл и выбрал драйвер принтера Generic/Text, входящий в состав Windows.
ПОДСКАЗКА Чтобы создать текстовый файл со свойствами и исходными текстами программ проекта, сначала установите драйвер принтера Generic/Text, поставляемый вместе с Windows 95 или NT. При настройке печати выберите вместо порта принтера строку FILE, а затем, после выполнения команды File > Print в Visual Basic, установите флажок Print to File. Полученный текстовый файл можно просмотреть в редакторе WordPad или включить в другой документ.
|
|
Ниже приведен исходный текст примера с меню и панелью инструментов из урока 5. Не беспокойтесь, если у вас он будет выглядеть несколько иначе — значения некоторых свойств несущественны.
Form1 - 1
Option Explicit
Private SubmnuFileExit_Click()
End
End Sub
Private Sub tbrToolbar_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Key
Case Is = "New"
MsgBox "Нажата кнопка New"
Case Is = "Open"
MsgBox "Нажата кнопка Open"
Case Is = "Save"
MsgBox "Нажата кнопка Save"
End Select
End Sub
frmData – 1
VERSION 5.00
Object = "{6B7E6392-850A-101B-AFCO-4210102A8DA7}#1.1#0"; COMCTL32.OCX
Begin VB.Form Form1
Caption = "Form1"
ClientHeight =1572
ClientLeft =3084
ClientTop =2556
ClientWidth =3744
LinkTopic ="Form1"
ScaleHeight =1572
ScaleWidth =3744 Begin ComctlLib.Toolbar tbrToolbar
Align = 1 'Выравнивание по верхнему краю
Height = 336
Left = 0
TabIndex = 0
Top = 0
Width = 3744
_ExtentX = 6604
_ExtentY = 593
ButtonWidth = 487
Appearance = 1
ImageList = "imToolbar"
BeginProperty Buttons {0713E452-850A-101B-AFCO-4210102A8DA7}
NumButtons = 4
BeginProperty Button1 {0713F354-850A-101B-AFCO-4210102A8DA7}
Key = ""
Object.Tag = ""
Style = 3
Value = 1
MixedState = -1 'True
EndProperty
BeginProperty Button2 {0713F354-850A-101B-AFCO-4210102A8DA7}
Key = "New"
Object.Tag =""
ImageIndex = 1
EndProperty
BeginProperty Button3 {0713F354-850A-101B-AFCO-4210102A8DA7}
Key = "Open"
Object.Tag = ""
ImageIndex = 2
EndProperty
BeginProperty Button4 {0713F354-850A-101B-AFCO-4210102A8DA7}
Key = "Save"
Object.Tag =""
ImageIndex =3
EndProperty
EndProperty
MouseIcon = {Binary}
End
Begin ComctlLib.ImageList imlToolbar
Left = 2520
Top = 720
_ExtentX = 804
_ExtentY = 804
BackColor = -21474836643
ImageWidth = 16
ImageHeight = 16
MskColor = 12632256
BeginProperty Images {0713E8C2-850A-101B-AFCO-4210102A8DA7}
NumListImages = 3
BeginProperty ListImage1 {0713E8C3-850A-101B-AFCO-4210102A8DA7}
Picture = {Binary}
Key = ""
frmData - 2
EndProperty
BeginProperty ListImage2 {0713E8C3-850A-101B-AFCO-4210102A8DA7}
Picture = {Binary}
Key = ""
EndProperty
BeginProperty ListImage3 {0713E8C3-850A-101B-AFCO-4210102A8DA7}
Picture = {Binary}
Key = ""
EndProperty
EndProperty
End
Begin VB.Menu mnuFile
Caption = "&File"
Begin VB.Menu mnuFileExit
Caption = "E&xit"
End
End
Begin VB.Menu mnuEdit
|
|
Caption = "&Edit"
Begin VB.Menu mnuEditCut
Caption = "Cu&t"
End
Begin VB.Menu mnuEditCopy
Caption = "&Copy"
End
Begin VB.Menu mnuEditPaste
Caption = "&Paste"
End
End
Begin VB.Menu mnuHelp
Caption = "&Help"
Begin VB.Menu mnuHelpAbout
Caption = "&About"
End
End
End
Расшифровка листинга
Программный код и свойства формы выведены на отдельных страницах. В начале каждой страницы указывается имя формы и номер страницы. Номер помогает ориентироваться в тех случаях, когда код или перечень свойств занимает несколько страниц. Программный код состоит из всех процедур событий, входящих в модуль формы. В перечень свойств входят все свойства формы и элементов, находящихся на ней. В данном примере страницы были объединены, однако в листинге остался заголовок Form1 - 1, с которого начинается программный код формы Form1. Другой заголовок, frmData - 1, начинает перечень свойств формы.
Перечень свойств выглядит достаточно просто, поэтому я ограничусь небольшим пояснением. Для каждой формы этот перечень начинается с Begin VB. Form и заканчивается End. С единичным отступом перечисляются свойства данной формы, а также несколько блоков Begin...End, каждый из которых соответствует некоторому элементу на форме. За ключевым словом Begin указывается тип объекта, затем — значение свойства Name. С отступом следующего уровня выводятся свойства всех элементов.
Теперь вы знаете все необходимое для того, чтобы организовать печать в своем приложении. Для построения отчетов я рекомендую пользоваться Crystal Reports Pro — это чрезвычайно мощный инструмент, который сэкономит ваше время и упростит работу.