Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры и задачи.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.66 Mб
Скачать

Implementation

{$R *.dfm} uses Printers;

procedure TForml.FormCreate(Sender: TObject); var

i: integer; begin

with StringGridl do begin

Cells[0,0] := ' »'; Cells[1,0] := ' Наименование'; Cells[2,0] := ' Цена1; Cells[3,0] := ' Кол-во'; Cells[4,0] := ' Сумма';

233

234

Часть fi

Примеры и задачи

235

'+IntToStr(i);

for i:=l to 10 do Cells[0,i] := end;

end;

// щелчок на кнопке Печать

procedure TForml.Button2Click(Sender: TObject);

const

LEFT__MARGIN = 2; // отступ слева 2 см TOP_MARGIN =2; // отступ сверху 2 см var

dpiX, dpiY : integer; // разрешение принтера по X и Y кх,ку: real; // коэф. пересчета координат экрана

// в координаты принтера по X и Y // таблица

р: array[0..4] of integer; // позиции колонок xl,yl,x2,y2: integer; // границы таблицы

рх,ру: integer; // указатель точки вывода i,j: integer;

begin

( Разрешение экрана и принтера разное, поэтому, чтобы добиться соответствия размеров изображения на экране и принтере, координаты точек экрана надо преобразовать в координаты принтера, домножить на коэф., значение которого зависит от разрешения принтера. Например, если разрешение принтера 300 dpi, то значение коэффициента равно 3.125, т. к. разрешение экрана —96 фа. }

// функция GetDeviceCaps позволяет получить характеристики // устройства. LOGPIXELSX — кол-во пикселов на дюйм по X dpiX := GetDeviceCaps(Printer.handle,LOGPIXELSX); dpiY := GetDeviceCaps(Printer.handle,LOGPIXELSY); kx := dpiX / Screen.PixelsPerlnch; ky := dpiY / Screen.PixelsPerlnch;

px := Round(LEFT_MARGIN / 2.54 * dpiX); py := Round(TOP_MARGIN / 2.54 * dpiY);

// вычислим "принтерные" координаты колонок таблицы

р[0] := рх;

for i:=1 to 4 do

begin

p[i] := p[i-l] + Round(StringGridl.ColWidths[i-1]* kx); end;

with Printer do begin

BeginDoc; // открыть печать

// заголовок таблицы Canvas.Font.Name := Edit1.Font.Name; Canvas.Font.Size := Editl.Font.Size; Canvas.TextOut(px,py,Editl.Text);

// таблица содержимое StringGridl

РУ := РУ+ Round(Editl.Font.Size * 2 * ky);

xl := px; yl := py; // левый верхний угол таблицы

Canvas.Font.Name := StringGridl.Font.Name; Canvas.Font.Size := StringGridl.Font.Size;

x2 := p[4] + Round(StringGridl.ColWidths[4]* kx); y2 := py +

Round(StringGridl.RowCount * StringGridl.RowHeights[1] * ky) ;

for j:=0 to StringGridl.RowCount do begin

// строки таблицы

for i:=0 to StringGridl.ColCount do

begin

Canvas.TextOut(P[i],py,StringGridl.Cells[i, j]) ;

// горизонтальная линия

Canvas.MoveTo(p[0] ,py) ;

Canvas.LineTo(x2,py); end;

py:=py+ Round(StringGridl.RowHeights[j]* ky); end;

// вертикальные линии

for i:=0 to StringGridl.ColCount -1 do

236

Часть Ц

end; end.

end;

begin

Canvas.MoveTo(p[i],yl);

Canvas.LineTo(p[i] ,y2); end;

Canvas.MoveTo(x2, yl); Canvas.LineTo(x2,y2);

EndDoc; // закрыть печать

Часть

2

Delphi

краткий справочник

Вторая часть книги — краткий справочник по компонентам и функциям, которые использовались для решения задач, пред­ставленных в первой части.

Компоненты

В этом разделе приведено краткое описание базовых компонен­тов Delphi. Подробное описание этих и других компонентов можно найти в справочной системе.

Форма

Форма (объект тип TForm) является основой программы. Свойст­ва формы (табл. 2.1) определяют вид окна программы.

Таблица 2.1. Свойства формы (объекта TForm)

Свойство

Описание

Name Имя формы. В программе имя формы используется

для управления формой и доступа к компонентам формы

Caption Текст заголовка

Тор Расстояние от верхней границы формы до верхней

границы экрана

Left Расстояние от левой границы формы до левой грани-

цы экрана

Width Ширина формы

Height ClientWidth

ClientHeight BorderStyle

240

Часть 2

Таблица 2.1 (продолжение)

Свойство

Описание

Высота формы

Ширина рабочей (клиентской) области формы, т. е. без учета ширины левой и правой границ

Высота рабочей (клиентской) области формы, т. е. без учета высоты заголовка и ширины нижней границы формы

Вид границы. Граница может быть обычной (bsSizeable), тонкой (bsSingle) или отсутствовать (bsNone). Если у окна обычная граница, то во время работы программы пользователь может при помощи мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя. Если граница отсутствует, то. на экран во время работы программы будет выведено окно без заголовка. Положение и размер такого окна во время работы программы изменить нельзя

Borderlcons

Кнопки управления окном. Значение свойства опре­деляет, какие кнопки управления окном будут доступ­ны пользователю во время работы программы. Значе­ние свойства задается путем присвоения значений уточняющим свойствам biSystemMenu, biMinimize, biMaximize и biHelp. Свойство biSystemMenu опре­деляет доступность кнопки Свернуть и кнопки сис­темного меню, biMinimize— кнопки Свернуть, biMaximize— кнопки Развернуть, biHelp— кнопки вывода справочной информации

Icon

Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню

Color

Цвет фона. Цвет можно задать, указав название цве­та или привязку к текущей цветовой схеме операци­онной системы. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы операционной системы

Font

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

Delphi - краткий

справочник

241

Таблица 2.1 (окончание)

Свойство

Описание

(прод.) располагающегося на поверхности формы. То есть

компоненты наследуют свойство Font от формы (име­ется возможность запретить наследование)

canvas Поверхность, на которую можно вывести графику

L abel

Компонент Label (рис. 2.1) предназначен для вывода текста на поверхность формы. Свойства компонента (табл. 2.2) определя­ют вид и расположение текста.

' Label Рис. 2.1. Компонент Label — поле вывода текста

Таблица 2.2. Свойства компонента Label (поле вывода текста)

Свойство

О писание

Name

Caption Left

Top

Height

Width

AutoSize

И мя компонента. Используется в программе для доступа к компоненту и его свойствам

Отображаемый текст

Расстояние от левой границы поля вывода до левой границы формы

Расстояние от верхней границы поля вывода до верхней границы формы

Высота поля вывода Ширина поля вывода

Признак того, что размер поля определяется его содержимым

243

242

W ordwrap

Alignment

Font

ParentFont

Color Transparent

Visible