Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Лабораторная работа №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;

 

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

 

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

 

1. Каковы назначение и функции объекта TPrinter?

2. Какие способы вывода информации на печать в среде Windows вам известны?

3. Как можно вывести на печать графический файл?

4. Как вывести на печать текстовый файл?

5. Как программно прервать процедуру вывода информации на печать?

 

 

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

 

Применение технологии OLE

Цель: ознакомиться с принципами программирования технологии OLE в прикладных программах средствами Delphi при использовании сервиса языка Word Basic.

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

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

 

Задание

1. Подготовить приложение, формирующее процесс-сервер OLE "Word Basic".

2. Используя этот сервер, программно (без явного запуска текстового процессора) создать и сохранить документ Microsoft Word; просмотреть содержимое документа.

 

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

 

1. Изучить понятия и приёмы использования технологии OLE.

2. Проверить наличие установленного текстового процессора Microsoft Word.

3. Написать исходный код программы.

4. Выявить и исправить ошибки.

5. Расставить по тексту программы комментарии.

6. Откомпилировать исходный текст программы.

7. Создать контрольный файл текстового процессора Microsoft Word при использовании ПП.

 

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

При формировании документа в операционной системе Windows (например, в редакторе Microsoft Word) в него могут быть добавлены данные, созданные другими приложениями: формулы, таблицы, графические файлы и т. д. Эти данные (и процесс, формирующий их, и именуемый далее клиентом OLE), рассматриваемые вместе с приложением, которое умеет их обрабатывать, будем называть объектом OLE, а такое приложение - сервером OLE.

Дословный перевод аббревиатуры OLE означает "внедренные и связанные объекты". Разница между внедрением и связыванием состоит в том, где и как размещаются данные, представляющие объект. Внедренный объект хранится в самом документе и является его составной частью. Для связанного объекта хранится только ссылка на данные, которые могут находиться в другом документе или в другой части этого документа. Каждый из способов имеет свои достоинства и недостатки. Наличие внедренных объектов увеличивает размер документа, зато он обладает переносимостью, и несколько пользователей могут работать с ним одновременно. Когда объект связан, то составной объект занимает гораздо меньше места, но такой документ нужно переносить вместе с данными, на которые он ссылается. Каждое изменение данных влечет за собой изменение во всех объектах, которые ссылаются на эти данные.

Возможности визуального программирования OLE в среде Delphi до версии 4.* ограничены только поддержкой внедрённых объектов. В данной лабораторной работе возможность работы с компонентом-контейнером, в который можно помещать данные OLE (стандартным компонентом поддержки технологии OLE), не используется. Здесь будет рассмотрен вариант создания и использования OLE-сервера (сервера "Word Basic") на более низком уровне — без использования визуальных компонентов.

По заданию, используя язык сервера Word Basic, требуется создать процесс-сервер OLE, а затем, применяя его директивы (операторы), программно сформировать документ Microsoft Word (связав его с сервером) и сохранить на жёстком диске.

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

1. Создание нового приложения и подготовка в нём процесса-сервера OLE (Word Basic).

2. Связывание с OLE сервером Word Basic и формирование с его помощью (с последующим сохранением) нового документа.

3. Завершение выполнения программы и просмотр документа.

 










Последнее изменение этой страницы: 2018-05-27; просмотров: 196.

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