Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

12.3. Печать

Существует специальный объект Printer, прдназначенный для выво­да на печать текста и графики. Основными средствами печати являются методPrintи генераторы отчетов, например Crystal Reports(п. 9.6), DataReport (п. 9.7). МетодPrintможет выводить данные в форму, на принтер (объект Printer), в графическое окно PictureBox и в окно отладки Debug. Метод по написанию и действию аналогичен команде Print без фразы Using (п. 2.5.5).

При выводе метод использует свойства шрифтов (Font) (п.5.1).

Объект Print дополнительно имеет свойства Page(номер текущей страницы),Pages(число страниц).

Для определения высоты и длины выводимого текста используются методы TextHeight (<текст>), TextWidth (<текст>)соответственно.

Пример.Lfam=Form1.TextWidth(“Иванов Иван Иванович”).

Свойство графического окна (поля) PictureBox или формы FontTransparent=True задает прозрачный фон при выводе текста методом Print, т.е. выводимые символы накладываются как бы поверх фона формы или графического поля, и фон текста не перекрывает их фон (True).

Координаты начального адреса (x,y) выводимого текста относительно левого верхнего угла области вывода можно задать методами CurrentX=x иCurrentY=y.

Очистка формы или графического окна реализуется методом Cls, и свойства CurrentX и CurrentY при этом обнуляются.

Управление принтером осуществляется методами:NewPage(смена листа и начало печати новой страницы, свойства CurrentX и CurrentY обнуляются),EndDoc(передача готового документа на печать диспетчеру печати Windows, свойства CurrentX и CurrentY обнуляются),KillDoc (диспетчер печати Windows прекращает печать и очищает буфер печати).

Для вывода на принтер всей формы без заголовка и рамки исполь­зуется метод PrintForm. Содержимое объектаPictureBoxвыводится на печать, если его свойствоAutoRedraw=True.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Как указывается начальный адрес выводимого текста?

  2. Как изменить шрифт и его атрибуты при выводе текста?

  3. Как определить размер области вывода?

  4. Как определить объем выводимого текста?

Контрольные вопросы

  1. Что произойдет, если объем текста превысит размер области вывода?

  2. Какие методы очищают область вывода?

  3. Куда можно направить вывод результатов работы программы?

  4. Что произойдет, если указать для формы свойство KeyPreview=True?

  5. Для чего используется оператор SendKeys?

Глава 13. Отладка, компиляция и распространение программ

13.1. Отладка

13.1.1. Устранение синтаксических и логических ошибок

Синтаксические ошибки (неправильно написанные ключевые слова, фразы, разделители) обнаруживаются самим компилятором. Од­но­строко­вый оператор выделяется крас­ным цве­том при переходе на другую строку. Для многострокового опе­ратора выводится сообщение при компиляции (рис.13.1.1.1). Для включения режима синтак­сичес­ко­го конт­ро­ля вводимых команд и вывода подсказ­ки нужно выполнить командыTools/Op­tion/Editor/Auto Syntax Check,Tools/Op­tion/Edi­tor/Auto Quick Info соответственно.

Рис.13.1.1.1. Ошибка

При написании имен объектов, свойств, методов и полей автома­тически вы­во­дит­ся список доступных элементов (Tools/Option/Editor/Auto List Mem­bers). Для включения в строку выб­ранного эле­мента из списка с перехо­дом/без перехода на следующую строку наж­мите клавишуEnter/Tab(дваж­ды щелкните мышкой). Этот список можно вызвать командойEdit/List Properties/Methods(^J).

Список именованных констант можно вызвать ко­ман­дой Edit/List Constants (^Shift+J).

Если в окне кода введены первые символы имени свойства, метода или поля, которых достаточно для однозначной идентификации, то можно автоматически вывести все имя, если выполнить командуEdit/Complete Word (^Пробел).

Закладкииспользуются для запоминания и выделения нужных строк. Командами Toggle bookmark, Next bookmark, Previous bookmark, Clear All bookmark в меню Edit/bookmarksможно установить закладку, переместить­ся на следующую или предыдущую закладку, удалить все закладки соответственно.

Существуют два режима компиляции: частичная (Run/StartилиF5) и полная (Run\Start With Full Compileили^F5).

После устранения синтаксических ошибок в программе могут ос­таваться логические ошибкиразработчика, которые приводят к ава­рий­ному за­вершению программы или к ошибочным результатам. Для их выяв­ле­ния и устранения используется режим отладки.

Для перехода в режим отладки используется кнопкаBreak(^Break).

Врежиме отладки можно продолжить выполнение программы кноп­койContinue(F5) или закончить выполнение программы кнопкойEndи перейти в режим разработки программы.

В режиме отладки обычно используются меню View и Debug.

В меню Viewможно исполь­зо­вать команды:

Immediate Window ‑ окно для немедленного выполнения команд, на­при­мер для просмотра значений отдельных переменных (рис. 13.1.1.2).

Local Window‑ окно для просмотра описания всех элементов процедуры.

Watch Window‑ окно задания переменных для наблюдения за изме­не­ни­ем их значений. Если подвести указатель мышки к имени переменной, по­ля, свойства или к выделенному выражению, то появится его текущее значение в всплывающем окнеDataTips.

Call Stack‑ окно для выбора текста других, вышестоящих процедур, вы­пол­нение которых, привело к выполняемой команде (стек процедур). Кноп­­койShowможно просмотреть текст выбранной процедуры. Зеленым треугольником выделяется строка, содержащая вызов процедуры.

Toolbars/Debug‑ вывод панели с кнопками отладки.

Рассмотрим основные команды меню отладки Debug.

Step Into‑ выполнить следующую команду с входом в процедуру.

Step Over‑ выполнить следующую команду, и, если она есть вызов процедуры, то выполнять ее за один шаг (выполнение по шагам).

Рис. 13.1.1.2. Меню и окна наблюдения и немедленного выполнения команд

Step Over‑ вернуться в вышестоящую процедуру.

Run To Cursor‑ продолжить выполнение программы до команды из стро­ки, на которую указывает курсор. Обычно используется при циклах.

Add Watch‑ добавить новый элемент в окно наблюдения. Можно указать дей­­ствия, выполняемые при изменении контролируемого значения: просто отображение (Watch Expression), переход в режим отладки, если оно равноTrue(BreakWhenValueIsTrue) или изменилось (BreakWhenValueIsChange).

Edit Watch‑ изменение содержимого окна наблюдения. Окно аналогично окнуAddWatch.

Quick Watch‑ быстрый просмотр элементов команды с ошибкой.

Toggle Breakpoint‑ установка точки прерывания перед командой, на кото­рую указывает курсор. Для быстроты можно просто щелкнуть мышкой на маркерной серой полосе перед командой. Точка прерывания выделяется крас­ным кружком на маркерной полосе, и фон строки меняется на крас­ный. Выполнение программы прерывается на этой точке (строка подлежит только обработке), и далее можно исполь­зовать весь арсенал от­лад­ки. Обычно в точке прерывания просмат­риваются значения отдельных эле­ментов и производится пошаговое вы­полнение команд. Точку прерывания можно указать и операторомStop(п. 2.11.3). В режиме отлад­ки строка, которая должна выполняться сле­дую­щей, выделяется желтой стрелочкой и желтым цветом (рис. 13.1.1.2). Для продолжения выполнения с другой стро­ки перетащите мышью желтую стрелочку на нужную строку.

Clear All Breakpoint‑ удалить из программы все точки прерывания. Оди­ноч­ную точку прерывания можно удалить щелчком мышки по красному кружку.

Set Next Statement‑ выполнить команду из строки, на которую указывает курсор.

Show Next Statement‑ вернуть курсор на выполняемую команду.

Командой Edit/Parameter Infoможно вывести описание функции, которая является параметром процедуры.

Системный объект Debugзадает окно отладки и имеет два метода:

Print‑ вывод в окно отладки (Debug.Print“A=”;A;”B=”;B) (п. 2.5.4);

Assert<выражение> ‑ приостановка выполнения программы, если выраже­ние равно нулю илиFalse.

При выполнении EXE‑файла строки с обращением к объектуDebugсчитаются комментариями.