
- •Белорусский национальный технический университет
- •Конспект лекций по курсу «конструирование программ и языки программирования»
- •1. Введение Общие понятия
- •Недостатки ms-dos
- •Преимущества Windows
- •Основные концепции Windows
- •Объекты Windows
- •Механизмы сообщения
- •2. Основы визуального программирования в delphi Принцип создания приложений в Delphi
- •Процесс создания исполняемого файла в Delphi
- •3. Стандартные визуальные компоненты Формы
- •4. События, обрабатываемые формой
- •5. Свойства стандартных компонент Общие сведения
- •Компонент Tlabel
- •Компонент tButton
- •Компонент tEdit
- •Компонента tMemo
- •Компонента tCheckBox Это кнопка с независимой фиксацией. Такой компонент обладает следующими свойствами:
- •Компонент tRadioGroup
- •Компонент tСheckListBox
- •Компонент tPanel
- •К омпонент tScrollBar
- •К омпонент tMainMenu
- •Компонент tPopupMenu
- •Компонент tListBox
- •Компонент tComboBox
- •6. Графические компоненты Общие свойства
- •Компонент tImage (отображение картинок)
- •Компонент tShape (стандартные фигуры)
- •Компонент tBevel (кромка)
- •Компонент tChart (построитель графиков)
- •Компонент tPaintBox
- •Компонента tImage
- •Компонента tShape
- •Компонент tBevel
- •Поддержка графических операций
- •Свойство объектов Canvas
- •7. Табличное представление данных
- •Компонент tStringGrid
- •Компонент tDrawGrid
- •8. Дополнительные компоненты Компонент tBitBtn
- •Компонент tSpeedButton
- •Компонент tToolBar
- •9. Организация стандартных диалогов
- •Компонент tOpenDialog и tSaveDialog
- •Компонент tOpenPictureDialog и tSavePictuteDialog
- •Компонент tColorDialog
- •Компонент tFontDialog
- •Компонент tPrintDialog
- •10. Программирование печати документов
- •11. Вывод графических изображений
- •Компонент tProgressBar
- •Компонент tAnimate
- •Компонент tDateTimePicker
- •Компонент tMediaPlayer
- •Компонент tAnimate
- •Средства создания мультимедийных приложений Что такое мультимедиа
- •Компонент tMediaPlayer
- •Два вида программ мультимедиа
- •Пример программы с мультимедиа
- •Обработка исключительных ситуаций
- •Структурная обработка исключительных ситуаций
- •Модель исключительных ситуаций в Delphi
- •Синтаксис обработки исключительных ситуаций
- •Примеры обработки исключительных ситуаций
- •Вызов исключительной ситуации
- •Доступ к экземпляру объекта exception
- •Предопределенные обработчики исключительных ситуаций
- •Исключения, возникающие при работе с базами данных
- •Заключение
- •Создание и использование ini-файлов
- •Развертывание приложений. Локализация и интернационализация приложений
- •Литература
- •12. Управление программой с помощью панели инструментов
- •Компонент tImageList
- •Компонент tToolBar- инструментальная панель
- •13. Создание программы с несколькими формами и средства управления ими
- •14. Создание многостраничного документа
- •Литература
Компонент tPrintDialog
TPrintDialog |
|
Эта компонента позволяет организовать управление принтером и устанавливать его свойства.
Свойства:
Collate: Boolean;
Если
Collate = true;
то можно использовать свойство CheckBox “Разобрать”. При этом сначала будет печататься первая копия, затем вторая и т.д.;
Если
Collate = false;
сначала будут печататься все первые страницы, затем вторые и т.д.;
Copies: Integer
- указывает количество копий. Если Copies = 0; то будет печататься одна копия.
FromPage: Integer
- определяет начальную страницу печати;
ToPage : Integer
- определяет конечную страницу печати;
PrintRange =(prAllPages, prSelection, prPageNums);
- определяет диапазон печатаемых страниц.
10. Программирование печати документов
Для обслуживания принтера используется специальный класс TPrinter, который описан в модуле Printers. Класс TPrinter инкапсулирует функции Windows по обслуживанию принтера. В модуле Printers на базе класса TPrinter создан объект
Printer: TPrinter;
который используется в программах.
Свойства класса TPrinter:
Canvas;
- это дисплейный контекст принтера, в котором происходит вывод информации.
Fonts;
- содержит список шрифтов, поддерживаемых принтером.
Orientation = (poPortrait, poLandscape);
- позволяет задавать тип расположения информации на листе;
PageHeight;
- содержит размер текущей принтерной страницы в пикселях
PageNumber;
- содержит номер текущей принтерной страницы. Это значение увеличивается на единицу при каждом вызове метода NewPage. Свойство только для чтения;
PageWidth;
- ширина принтерной страницы;
Printers;
- содержит список всех принтеров, доступных приложениям. Свойство только для чтения;
PrinterIndex;
- указывает, какой из принтеров в списке является текущим. Чтобы использовать принтер “по умолчанию” следует положить
PrinterIndex = -1;
Title;
- позволяет задавать заголовок страницы.
П
ример.
Unit DemoPrinter;
Interface
Uses
, Printers;
Type
TForm1 = class (TForm)
ComboBox1: TComboBox;
ComboBox2: TComboBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Procedure FormCreate(Sender: TObject);
Procedure RadioButton1Click(Sender: TObject);
Procedure Button1Click(Sender: TObject);
Procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
Interface
Procedure TForm1.FormCreate(Sender: TObject);
begin
//вывести список принтеров
ComboBox1.Items := Printer.Printers;
//вывести список поддерживаемых шрифтов
ComboBox2.Items := Printer.Fonts;
ComboBox1.ItemsIndex := 0;
ComboBox2.ItemsIndex := 0;
//по умолчанию ориентация страницы poPortrait
RadioButton1.Checked := true;
Printer.Orientation := poPortrait;
//получить текущую высоту листа
Edit1.Text := IntToStr(Printer.PageHeight);
//получить текущую ширину листа
Edit2.Text := IntToStr(Printer.PageWidth);
//активизировать Edit3
ActiveControl := Edit3;
end;
Procedure TForm1.RadioButton1Click(Sender: TObject);
begin
if (Sender as TRadioButton).Checked then
if (Sender as TRadioButton).Caption = ‘Горизонтальная’
then Printer.Orientation := poLandScape
else Printer.Orientation := poPortrait;
end;
Procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.Title := Edit3.Text;
end;
Procedure TForm1.Button1Click(Sender: TObject);
begin
Printer.Title := Edit3.Text;
end;
Procedure TForm1.Button2Click(Sender: TObject);
begin //печать информации
Print; //вывод содержимого формы или
if PrintDialog1.Execute then Form1.Print;
end;
end;
Методы класса TPrinter:
Abort;
- аварийное завершение вывода на печать. Этот метод используется, если пользователь решил прервать печать досрочно.
Пример.
Procedure TForm1.FormKeyDown(Sender: TObject; var Key; Word; Shift: TShiftState);
begin
//если во время печати нажата клавиша ESC
if (Key = vk_ESCAPE) and Printer.Printing then
begin
Printer.Abort;
MessageDlg(‘Печать прервана‘, mtInformation, [mbOK],0);
end;
end;
BeginDoc;
- посылает информацию на принтер;
EndDoc;
- начало процесса печати;
NewPage;
- переход на новый лист печати. Этот метод увеличивает на 1 свойство PageNumber и устанавливает курсор в координату (0, 0);
Базовые операции с принтером
Последовательность использования методов принтера следующая:
Вызов метода BeginDoc.
Вывод информации на Canvas.
Распечатка документа с помощью метода EndDoc.
Пример.
begin
Printer.BeginDoc;
//вывод информации
Printer.Canvas.TextOut(10, 10, ‘Печать’);
Printer.Canvas.Rectangle(10, 10, 100, 100);
Label1.Caption := ’Печать страницы #’+IntToStr
(Printer.PageNumber);
Printer.NewPage;
Printer.EndDoc;
end;
Вывод текстовой информации
Покажем, как вывести информацию компонента TMemo. Для этого воспользуемся рядом процедур модуля Printers.
var
TextPrint : System.Text;
Line : Integer;
begin
//ассоциируем значение текстовой переменной с принтером
AssignPrn(TextPrint);
//открыть файл
Rewrite(TextPrint);
//печать тем же шрифтом, что и в Memo
Printer.Canvas.Font := Memo1.Font;
//вывод содержимого Memo1
for Line := 0 to Memo1.Lines.Count-1 do
Writeln(TextPrint.Memo1.Lines[Line]);
//завершить вывод информации
System.Close;
end;
Распечатка содержимого ASCII-файла.
Procedure PrintFile(FileName: String);
var
F : TextFile;
S : String;
Row: Integer;
begin
AssignFile(F, FileName);
Reset(F);
Row := 0;
Printer.BeginDoc;
While not eof(F) do
begin
Readln(F, S);
Printer.Canvas.TextOut(0, Row, S);
Row := Row + 20;
if Row >= Printer.PageHeight then Printer.NewPage;
end;
Printer.EndDoc;
CloseFile;
end;