Печать исходного текста программы

Вряд ли вам удастся запомнить все свойства различных форм и элементов. Чтобы узнать их значения, можно поочередно открыть каждую форму и щелкнуть на каждом элементе с открытым окном свойств. Впрочем, это займет немало времени. Нет ли более удобного способа для получения списка всех объектов, свойств и программного кода? Попробуйте воспользоваться командой File > Print. Диалоговое окно Print, открывающееся при выполнении этой программы, показано на рис. 9.18.

Печать исходного текста программы - student2.ru

Рис. 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 — это чрезвычайно мощный инструмент, который сэкономит ваше время и упростит работу.

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

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

Печать исходного текста программы - student2.ru Использовать метод Print для вывода данных на принтер.

Печать исходного текста программы - student2.ru Выводить данные в окне непосредственных вычислений. 0 Использоватьметод PrintForm для печати форм.

Печать исходного текста программы - student2.ru Обращаться к различным принтерам, установленным в вашей системе, из программы.

Печать исходного текста программы - student2.ru Пользоваться Crystal Report Pro для построения отчетов.

Печать исходного текста программы - student2.ru Использовать элемент Crystal Reports для включения отчетов в приложения.

Печать исходного текста программы - student2.ru Печатать исходные тексты программ.

УРОК

Диалоговые окна

Печать исходного текста программы - student2.ru Стандартные диалоговые окна

Печать исходного текста программы - student2.ru Создание пользовательских диалоговых окон

Печать исходного текста программы - student2.ru Создание класса диалогового окна

Печать исходного текста программы - student2.ru Использование класса диалогового окна

Для обмена информацией с пользователем в Windows используются специальные формы, которые называются диалоговыми окнами. Они привлекают внимание пользователя и обеспечивают его реакцию на происходящее. В этом уроке вы узнаете, как пользоваться диалоговыми окнами, встроенными в Visual Basic, a также научитесь создавать и использовать собственные диалоговые окна, которые можно будет включать в другие проекты.

Стандартные диалоговые окна

В проектах Visual Basic часто встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в Visual Basic, и если их возможностей окажется достаточно, вам не придется проектировать нестандартные диалоговые окна. Окно сообщения(МsgВох) выводит простейшие сообщения для пользователя, а окно ввода (InputBox), напротив, служит для ввода информации.

Окно сообщения

Оператор для создания окна сообщения выглядит так (в сокращенном варианте):

MsgBox сообщение, атрибуты, заголовок

где сообщение — текст, отображаемый в диалоговом окне; заголовок — строка в заголовке окна; параметр атрибуты определяет особенности окна — а именно различные кнопки и значки, отображаемые в нем. Ниже перечислены значения этого параметра и константы, используемые для определения окна сообщения.

Константа Значение Стиль
vbOKOnly Отображается только кнопка ОК
vbOKCancel Отображаются кнопки ОК и Cancel
vbAbortRetrylgnore Отображаются кнопки Abort, Retry и Ignore
vbYesNoCancel Отображаются кнопки Yes, No и Cancel
vbYesNo Отображаются кнопки Yes и No
vbRetryCancel Отображаются кнопки Retry и Cancel
vbCritical Отображается значок критического сообщения
vbQuestion Отображается вопросительный знак (предупреждение)
vbExclamation Отображается восклицательный знак (предупреждение)
vblnformation Отображается значок информационного сообщения

Значения констант можно складывать, чтобы достичь желаемого результата. Например, чтобы в окне сообщения присутствовали кнопки OK и Cancel, a также зна-

чок информационного сообщения, можно воспользоваться любым из приведенных ниже вариантов:

DlgDef = vbOKCancel

DlgDef = 1 + 64

Затем значение переменной DlgDef используется при вызове MsgBox.

Окно сообщения также может вызываться при помощи функции — возвращаемое значение зависит от кнопки, нажатой пользователем. Синтаксис функции MsgBox практически совпадает с синтаксисом одноименного оператора:

Dim гс As Integer 'Код возврата

rc = МздВох(сообщение, атрибуты, заголовок)

Обратите внимание на скобки, необходимые при вызове функции. Различные коды возврата перечислены ниже.

Константа Значение Нажатаякнопка
vbOK ОК
vbCancel. Cancel
vbAbort Abort
vbRetry Retry
vblgnore Ignore
vbYes Yes
vbNo No

Окно ввода

Окно ввода, как и окно сообщения, может отображаться оператором или функцией. Сокращенный синтаксис функции выглядит так:

Dim гс As String

гс = InputВох(сообщение, заголовок, умолчание)

На этот раз параметр атрибуты отсутствует, однако появляется дополнительный параметр умолчание. В нем можно задать строку, которая будет по умолчанию находиться в текстовом поле. Когда пользователь нажимает кнопку OK, содержимое этого поля присваивается переменной (в нашем примере rс). Если пользователь нажал кнопку Cancel, возвращается строка нулевой длины.

ПРИМЕЧАНИЕОбратите внимание — функция InputBox возвращает строку, а функция MsgBox — значение целого типа.

Следующий пример показывает, как пользоваться функцией InputBox: 1. Создайте новый проект командой File > New Project

2. Выберите в Project Wizard значок Standard EXE.

3. Добавьте кнопку на форму Form1.

4. В окне свойств задайте свойству Name кнопки значение cmdTryMe.

5. Задайте свойству Caption кнопки значение &Нажми меня.

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

7. Добавьте следующий фрагмент в процедуру события Click кнопки cmdTryMe:

Private Sub cmdTryMe_Click()

Dim rс As String

rc = InputВох("Введите имя:")

MsgBox "Привет, " & rс & "!"

End Sub

8. Запустите программу командой Run > Start.

9. Нажмите кнопку, чтобы вызвать диалоговое окно InputBox. 10. Введите в текстовом поле свое имя и нажмите кнопку ОК.

Этот маленький пример в общих чертах показывает, как работают диалоговые окна MsgBox и InputBox. Если все сделано правильно, в окне ввода вам будет предложено ввести имя, после чего Visual Basic выдает окно сообщения со строкой типа «Привет, Стив!» (разумеется, в вашем случае будет выведено имя, заданное в окне ввода).

Печать исходного текста программы - student2.ru

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