Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программирование печати документов

Вопросы и упражнения.

1. Напишите редактор с использованием компонента Memo c возможностью вставки символов с меню и 3 панелями инструментов. Формат текста, цвет устанавливается через закладки многостраничного элемента TabbedNoteBook.

2. Изучите свойства компонента PageControl, выясните их отличие от свойств компонента TabbedNoteBook.

3. Создайте справочник по свойствам многостраничных элементов. Для структурирования разделов справочника также используйте многостраничные элементы.

4. В чем отличие и сходство свойств элементов TabControl и TabSet?

5. Напишите редактор текстов. Для загрузки файлов используйте компонент TabSet, причем количество закладок не менее 5 и они означают имя загружаемого файла (без расширения).

 

Перечислим компоненты Delphi, которые помогут в организации печати данных.

· PrintDialog. Открывает стандартный Диалог Windows для печати, для получения доступа к опциям настройки принтера.

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

· Tprinter. Этот компонент определен как класс в модуле Printers. Среди других членов этого класса в распоряжении программиста свойство Canvas, позволяющее в режиме WYSIWYG отобразить на экране будущий печатный лист с текстом и графикой.

Печать строк из программы. Для реализации такой задачи используют свойство Canvas объекта printer. Установите на форме компоненты Memo1 и Button1. Для события Click для кнопки напишите следующий код:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, printers, StdCtrls;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

with printer do

begin

BeginDoc;

canvas.Font.Size:=16;

canvas.Font.Style:=[fsbold];

canvas.TextOut(10,10,'Вывод текста на принтер.');

canvas.TextOut(10,30,'Печатается текст.');

EndDoc;

memo1.Text:='Конец печати';

end;

end;

end.

Обратите внимание, что для свойства Canvas принтера определены процедуры TextOut, BeginDoc, EndDoc.

Другой простой технологией печати строк из текста программы является технология создания выходного файла, в который будет направлен весь текст. Для этого определяем файловую переменную FPrn. Чтобы перенаправить записываемый в эту переменную выходной поток используются следующие команды:

AssignPrn(FPrn); {направляем выходной поток на принтер}

Rewrite(FPrn); {открываем файл}

Процедура AssignPrn, которая связывает выходной файл с принтером, определена в модуле Printers.

Установите на форме кнопку и напишите для обработки щелчка следующий код.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, printers, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

Fprn:System.text;

begin

AssignPrn(Fprn);

Rewrite(Fprn);

Try

writeln(Fprn,'Привет принтеру');

writeln(Fprn,'Обратите внимание на переменну Fprn:System.text');

writeln(Fprn,'Обратите внимание на конструкцию try - finally');

finally

closefile(Fprn);

end;

end;

end.

Процедура Writeln печатает указанную строку и символы перевода строки. Чтобы избежать возможных сбоев, поместим команды печаим в блок Try

Writeln (Fprn,'Привет принтеру');

Writeln (Fprn,'Обратите внимание на переменну Fprn:System.text');

Writeln (Fprn,'Обратите внимание на конструкцию try - finally');

{… Cюда поместите операторы печати}

Оператор, который сигнализирует о том, что задание окончено поместим в блок Finally.Это позволит выполнение оператора конца печати и в случае ошибок принтера:

finally

CloseFile(FPrn);

end;

Обратите внимание на то, что оператор try - finally обязательно завершается ключевым словом end, которое является частью его структуры.

Для управления принтером через процедуры Write и WriteLn можно использовать четыре управляющих кода, перечисленных в следующей таблице.

Таблица 2.21.

Управляющий код Команда Управляющий код Команда
#9 Табуляция #9 Табуляция
#10 Новая строка #10 Новая строка

 

Печать списков строк. Чтобы распечатать строки объекта класса Tstrings или TstringList можно использовать процедуру Writeln как в предыдущем примере. Рассмотрим пример печатающий содержимое Memo – объекта. Как и в рассмотренных примерах, в перечень модулей uses добавим модуль Printers.

Приведем код модуля.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, printers;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

Implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

FPrn:textfile;

I:integer;

begin

AssignPrn(FPrn);

Rewrite(FPrn);

try

for i:=0 to memo1.Lines.Count-1 do

writeln(FPrn,memo1.lines[i]);

finally

CloseFile(FPrn);

end;

end;

end.

Этот код можно использовать для печати текстового содержимого любого объекта, представленного его свойством типа Тstrings. Например для печати строк компонента Listbox необходимо использовать свойство Items как показано ниже в процедуре обработки щелчка кнопки.

procedure TForm1.Button1Click(Sender: TObject);

var

FPrn:textfile;

I:integer;

begin

AssignPrn(FPrn);

Rewrite(FPrn);

try

for i:=0 to listbox1.Items.Count-1 do

writeln(FPrn,listbox1.Items[i]);

finally

CloseFile(FPrn);

end;

end;

<== предыдущая лекция | следующая лекция ==>
Многостраничные элементы | Вопросы и упражнения
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.