- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •IBplementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •Interface
- •Часть 1 I. 104
- •Implementation
- •Implementation
- •Implementation
- •Часть I
- •Р ис. 1.46. Окно программы Звуки Windows
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •168 Част
- •Implementation
- •Часть 1
- •Interface uses
- •Implementation
- •Interface
- •Implementation
- •Часть 1
- •Часть 1 I Примеры и задачи
- •Часть 1 I Примеры и задачи
- •Implementation
- •205 Часть
- •Interface
- •Implementation
- •216 Часть 1
- •Поле т ип Размер Информация
- •Часть 1
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Часть 2 Таблица 2.2 (окончание)
- •252 Часть 2
- •Часть 2 I Delphi — краткий справочник
- •Часть 2
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;
begin
Canvas.MoveTo(p[i],yl);
Canvas.LineTo(p[i] ,y2); end;
Canvas.MoveTo(x2, yl); Canvas.LineTo(x2,y2);
EndDoc; // закрыть печать
Часть
2
краткий справочник
Вторая часть книги — краткий справочник по компонентам и функциям, которые использовались для решения задач, представленных в первой части.
Компоненты
В этом разделе приведено краткое описание базовых компонентов 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
W
ordwrap
Alignment
Font
ParentFont
Color Transparent
Visible
