close

Вход

Забыли?

вход по аккаунту

?

Лаба.Отчет

код для вставкиСкачать
Южный Федеральный Университет
Таганрогский Технологический Институт
Кафедра ВТ
Интерфейсы и периферийные устройства
Лабораторная работа Программа работы с принтером
Выполнили:
Студент 5-го курса
Кузнецов Н.В.
Шумейко А. Г.
Группа З-146
Таганрог. 2011 г.
Лабораторная работа: Программа работы с принтером
Задание
Разработать программу работы с принтером через стандартные функции Windows.
Выполнение работы
Разработана программа на С++, в графическом режиме. Тело программы состоит из 2х форм: Основная- отвечает за печать и дополнительная- предварительный просмотр строки
Вид основной формы:
Листинг заголовочного файла: Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
TButton *Button1; // кнопка "печать"
TGroupBox *GroupBox1; TEdit *Edit1; // поле ввода строки
TGroupBox *GroupBox2;
TComboBox *ComboBox1;// Список размера шрифта
TGroupBox *GroupBox3;
TComboBox *ComboBox2;// Список типа шрифта
TButton *Button2;// кнопка предпросмотра
TGroupBox *GroupBox4;
TCheckBox *CheckBox1;// Полужирный вкл/выкл
TCheckBox *CheckBox2;// Курсив вкл/выкл
TCheckBox *CheckBox3;// Подчеркивание вкл/выкл
void __fastcall Button1Click(TObject *Sender); // прототипы функций
void __fastcall Button2Click(TObject *Sender);// обработки кнопок
private:// User declarations
public:// User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Заголовочный файл создается средой автоматически и определяет объекты созданные на форме и используемые в теле программы.
Листинг основного файла программы: Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h" // здесь подключаем к главной форме форму предосмотра.
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
//Обработчик кнопки "печатать".
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TPrinter *prn = Printer(); // Создаем объект prn. Текущий принтер.
AnsiString shrift; // Объявляем строковую переменную. В ней будет хранится
// название шрифта.
int RazmSh; // Объявляем целую переменную для хранения размера шрифта.
// Обращаемся к элементу ComboBox1 (выпадающий список) на главной форме,
// получаем его значение (какой размер шрифта выбран) и сохраняем его в
// переменной x. Затем в соотствии с индексом положения комбобокса присваиваем
// переменной RazmSh выбранное значение размера шрифта.
int x=ComboBox1->ItemIndex;
if (x==0) {RazmSh = 8;}
if (x==1) {RazmSh = 12;}
if (x==2) {RazmSh = 18;}
if (x==3) {RazmSh = 24;}
if (x==4) {RazmSh = 36;}
if (x==5) {RazmSh = 42;}
// Обращаемся к элементу ComboBox2 (выпадающий список) на главной форме,
// получаем его значение (выбранный шрифт) и сохраняем его в переменной y.
// Затем в соотствии с индексом положения комбобокса присваиваем
// переменной shrift имя выбранного шрифта.
int y=ComboBox2->ItemIndex;
if (y==0) {shrift = "MS Sans Serif";}
if (y==1) {shrift = "Arial";}
if (y==2) {shrift = "Times New Roman";}
//Обращаемся к элементам CheckBox1-CheckBox3 на главной форме (галочки)
//и сохраняем значения элементов (вкл/выкл) в переменных булевого типа z1-z3.
bool z1=CheckBox1->Checked;
bool z2=CheckBox2->Checked;
bool z3=CheckBox3->Checked;
//Начинаем вывод на принтер.
prn->BeginDoc(); // открываем документ.
prn->Canvas->Font->Size=RazmSh; // задаем размер шрифта
prn->Canvas->Font->Name=shrift; // задаем имя шрифта
// Здесь задается тип начертания текста
// если установлены все галочки (полужирный+курсив+подчеркнутый)...
if (z1&&z2&&z3) {
prn->Canvas->Font->Style=TFontStyles() << fsBold << fsItalic << fsUnderline; }
else {
//если установленые галочки полужирный+курсив
if (z1&&z2) {
prn->Canvas->Font->Style=TFontStyles() << fsBold << fsItalic; }
else {
//если установлены галочки полужирный+подчерккнутый
if (z1&&z3) {
prn->Canvas->Font->Style=TFontStyles() << fsBold << fsUnderline;}
else {
//если установлены галочки курсив+подчеркнутый
if (z2&&z3) {
prn->Canvas->Font->Style=TFontStyles() << fsItalic << fsUnderline; }
else {
// если установлена одна галочка - полужирный
if (z1) {
prn->Canvas->Font->Style=TFontStyles() << fsBold; }
else {
// если установлена одна галочка - курсив
if (z2) {
prn->Canvas->Font->Style=TFontStyles() << fsItalic; }
else {
// если установлена одна галочка - подчеркнутый
if (z3) {
prn->Canvas->Font->Style=TFontStyles() << fsUnderline; }
else {
//иначе снять все начертания
prn->Canvas->Font->Style=TFontStyles() >> fsBold >> fsItalic >> fsUnderline;}
} } } } } }
//вывод предварительно настроенной строки на печать (значение берем из элемента
// Edit1 (поле ввода) на главной форме)
prn->Canvas->TextOutA(0, 0, Edit1->Text);
prn->EndDoc(); // закрываем документ
}
//---------------------------------------------------------------------------
//Обработчик кнопки "Предосмотр".
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->ShowModal(); // вызываем форму2.}
//---------------------------------------------------------------------------
Вид дополнительной формы:
Листинг заголовочного файла: Unit2.h
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:// IDE-managed Components
void __fastcall FormActivate(TObject *Sender);
private:// User declarations
public:// User declarations
void TForm2::PredOsm(); __fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
Листинг основного файла дополнительной формы: Unit2.cpp
// Это дополнительная форма предосмотра выводимой на печать строки.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h" // подключаем главную форму к данной
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//Функция вывода строки на предосмотр. По сути, повторяются все действия по
//выводу на печать сделанные на главной форме.
// Отличие в том, что выводим строку не на принтер, а на холст данной формы.
void TForm2::PredOsm()
{
// задаем переменнные
AnsiString shrift;
int RazmSh;
// получаем значение размера шрифта
int x=Form1->ComboBox1->ItemIndex;
if (x==0) {RazmSh = 8;}
if (x==1) {RazmSh = 12;}
if (x==2) {RazmSh = 18;}
if (x==3) {RazmSh = 24;}
if (x==4) {RazmSh = 36;}
if (x==5) {RazmSh = 42;}
// получаем выбранный шрифт
int y=Form1->ComboBox2->ItemIndex;
if (y==0) {shrift = "MS Sans Serif";}
if (y==1) {shrift = "Arial";}
if (y==2) {shrift = "Times New Roman";}
//получаем выбранное начертание
bool z1=Form1->CheckBox1->Checked;
bool z2=Form1->CheckBox2->Checked;
bool z3=Form1->CheckBox3->Checked;
//заполняем форму белым фоном
Canvas->Brush->Color=clWhite;
Canvas->FillRect(TRect(0,0,800,200));
Canvas->Font->Size=RazmSh; //устанавливаем размер шрифта
Canvas->Font->Name=shrift; //устанавливаем тип шрифта
// устанавливаем начертание
if (z1&&z2&&z3) {
Canvas->Font->Style=TFontStyles() << fsBold << fsItalic << fsUnderline; }
else {
if (z1&&z2) {
Canvas->Font->Style=TFontStyles() << fsBold << fsItalic; }
else {
if (z1&&z3) {
Canvas->Font->Style=TFontStyles() << fsBold << fsUnderline;}
else {
if (z2&&z3) {
Canvas->Font->Style=TFontStyles() << fsItalic << fsUnderline; }
else {
if (z1) {
Canvas->Font->Style=TFontStyles() << fsBold; }
else {
if (z2) {
Canvas->Font->Style=TFontStyles() << fsItalic; }
else {
if (z3) {
Canvas->Font->Style=TFontStyles() << fsUnderline; }
else {
Canvas->Font->Style=TFontStyles() >> fsBold >> fsItalic >> fsUnderline;}
} } } } } }
//выводим строку на холст.
Canvas->TextOutA(0, 0, Form1->Edit1->Text);
}
//---------------------------------------------------------------------------
//обработчик по активизации формы. Служит для запуска функции вывода строки
//на экран в момент открытия формы предосмотра
void __fastcall TForm2::FormActivate(TObject *Sender)
{
TForm2::PredOsm(); // вызываем функцию вывода строки
}
//---------------------------------------------------------------------------
Программа обращается к принтеру через стандартные функции Windows, что полностью соответствует заданию. 
Документ
Категория
Рефераты
Просмотров
5
Размер файла
82 Кб
Теги
лаба, отчет
1/--страниц
Пожаловаться на содержимое документа