Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии программирования.doc
Скачиваний:
42
Добавлен:
11.04.2015
Размер:
651.26 Кб
Скачать

Контрольные вопросы и задания

 

1. Для чего создаются новые компоненты?

2. Перечислите стадии проектирования нового компонента.

3. Перечислите характерные отличия модуля – шаблона компонента от отдельного модуля исходного кода любого ПП.

4. Что такое свойства компонента?

5. Каково назначение процедуры RegisterComponents()?

6. Каково назначение метода Execute?

7. Каким образом проинсталлировать новый компонент в Палитру компонентов?

Лабораторная работа №7 (2 часа)

 

Печать файлов из прикладных программ

 

Цель: научиться основным приёмам программирования печати документов из прикладных программ, создаваемых в среде Delphi.

Оборудование: ПЭВМ IBM PC-AT.

Программные средства: ОС семейства Windows, среда Delphi 5.* (или выше), текстовый редактор Notepad, графический редактор MSPaint.

 

Задание

1. Стандартными средствами Windows создать два файла:

— текстовый;

— графический.

2. Написать прикладную программу, с помощью которой вывести на печать созданные файлы.

 

Программа работы

 

1.     Изучить два основных способа вывода информации на печать средствами Delphi.

2.     Настроить систему печати на используемом ПК.

3.     Подготовить тестовые файлы для печати.

4.     Написать прикладную программу.

5.     Вывести на печать с помощью ПП контрольные файлы.

 

Пояснения к работе

 

Лабораторная работа выполняется в три этапа:

1. Проверка наличия печатающего устройства в списке устройств, подключенных к ПК, и его установка (при необходимости).

2. Подготовка двух файлов для тестирования программы.

3. Написание программы и выполнение с её помощью печати в среде Windows.

 

Указания к выполнению работы

 

Этап 1. На этом этапе проверьте, имеется ли доступ с Вашего компьютера хотя бы к одному печатающему устройству (сетевому или локальному). Если нет – выполните необходимые операции по настройке.

Примечание. Последовательность операций по проверке на наличие установленных в системе принтеров и по их подключению осуществляется студентами самостоятельно, так как изучается отдельно в курсе "Информатика" и в данной работе не рассматривается.

Этап 2. Создайте рабочую директорию для выполнения работы.

Разместите в ней два файла: текстовый (с расширением "TXT" и размером в 7-8 строк) и графический (с расширением BMP и размером растрового изображения, например, 5х5 см), которые создайте, к примеру, с помощью редакторов Notepad и Paint соответственно.

Этап 3. Запустите Delphi, создайте новое приложение.

В раздел uses добавьте необходимую для работы с принтером библиотеку:

 

Printers

 

Разместите на форме пять компонентов: диалоги типа TOpenDialog, TOpenPictureDialog и TPrinterSetupDialog со страницы палитры Dialogs и три кнопки любого типа.

Кнопкам присвойте названия: "Отпечатать графический файл", "Отпечатать текстовый файл", "Прервать печать".

Для компонента диалога TOpenDialog задайте одну маску для файлов (свойство компонента Filter) – "*.TXT". Для диалога TOpenPictureDialog отредактируйте маску, оставив единственную - "*.BMP".

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

В процедуре, выполняемой при нажатии кнопки "Отпечатать графический файл", объявите переменную:

 

Bmp: TBitmap;

 

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

 

Bmp := TBitmap.Create; // Cоздать объект Bmp

if OpenPictureDialog1.Execute then // Если в диалоге выбран графический файл

if PrinterSetupDialog1.Execute then // и определён принтер для печати

try

// Загрузить изображение

Bmp.LoadFromFile (OpenPictureDialog1.FileName);

with Printer do

begin

BeginDoc; // Послать принтеру сообщение о начале печати

// Вывести изображение из файла в центре листа печати

Canvas.Draw((PageWidth - Bmp.Width) div 2,

(PageHeight - Bmp.Height) div 2,

Bmp);

EndDoc; // Послать принтеру сообщение об окончании печати

end;

finally

Bmp.Free; // Высвободить память из-под объекта Bmp

end;

 

Компонент TPrinter явным образом не помещается на форму, но всегда активизируется в программе, если в разделе uses указывается библиотека Printers.

TPrinter - объект, позволяющий работать программными средствами с принтерами (ом), к которым имеется доступ с вашего ПК. В данном примере показан способ вывода на печать графической информации с использованием свойства TCanvas, который аналогичен отрисовке на канве любого визуального компонента, обладающего таким свойством.

Для печати текста удобнее пользоваться старым методом Writeln, унаследованным из языка Pascal. Поэтому процедура для кнопки "Отпечатать текстовый файл" будет выглядеть несколько иначе:

 

var

PrintText, F : TextFile;

S : string;

begin

if OpenDialog1.Execute then // Если в диалоге выбран текстовый файл

if PrinterSetupDialog1.Execute then // и определён принтер для печати

try

AssignPrn (PrintText); // Связать с принтером переменную PrintText

// Подготовить принтер для вывода текста через переменную PrintText

Rewrite (PrintText);

// Вывести название файла

Writeln (PrintText, 'Файл ' + OpenDialog1.Filename);

// Связать с файлом переменную F

AssignFile (F, OpenDialog1.Filename);

Reset (F);

// провести цикл вывода на печать содержимого текстового файла

while not Eof (F) do

begin

Readln (F, S);

Writeln (PrintText, S);

end;

finally

CloseFile (F);

System.CloseFile (PrintText);

end;

end;

 

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

Иногда возникает необходимость прервать печать документа. С этой целью создайте обработчик для нажатия кнопки "Прервать печать". В нём нужно проверять свойство Printing объекта Printer - идёт ли печать в данный момент и, если "Да", то прерывать её командой Abort:

 

if Printer.Printing then // если принтер в данный момент печатает

begin

Printer.Abort; // прервать печать принтера и

// выдать сообщение:

MessageDlg ('Печать прервана', mtInformation, [mbOK],0);

end;

 

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