Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

Принтер и все связанное с ним   Найти похожие ветки 

 
Beauty_Full   (2002-01-03 20:54) [0]

Драствуйте!

Я тут имею форму с TStringGrid. Как эту таблицу можно распечатать ? Как распечатать в черно-белом режиме ?
(только одну таблицу, без всяких частей формы)

Спасибо всем кто обратил на это внимание !!!


 
Vovchik   (2002-01-03 23:00) [1]

А как вообще печатать в Дельфи? Есть объект TPrinter. Печать выглядит так:
var
r:TRect;
NCopies:integer;
begin
r:=Rect(10,10,1200,600); //область печати - зависит от принтера

Printer.Title:="My Printing";
Printer.Copies:=NCopies;
Printer.BeginDoc;
Printer.Canvas.CopyRect(r,StringGrid1.Canvas,Rect(0,0,StringGrid1.Width,StringGrid1.Height));
Printer.EndDoc;
end;

Чтобы определить возможности принтера есть специальные винаппийские функции. Часть из свойств можно узнать с помощью того же TPrinter.
Пример на ВИНАПИ:
//опр. текущие размеры листа в пикселях принтера
PWidth:=GetDeviceCaps(Printer.Handle,PHYSICALWIDTH);
PHeight:=GetDeviceCaps(Printer.Handle,PHYSICALHEIGHT);
//опр. минимальные поля со всех сторон, зависящие от принтера
LeftMargin:=GetDeviceCaps(Printer.Handle,PHYSICALOFFSETX);
TopMargin:=GetDeviceCaps(Printer.Handle,PHYSICALOFFSETY);
RightMargin:=PWidth-GetDeviceCaps(Printer.Handle,HORZRES)-LeftMargin;
BottomMargin:=PHeight-GetDeviceCaps(Printer.Handle,VERTRES)-TopMargin;

Исходя из этих значений можно определить область печати с необходимыми полями. Для пересчёта пикселей в мм необходимо использовать следующие ф-ции:
LogResX:=GetDeviceCaps(Printer.Handle,LOGPIXELSX);
LogResY:=GetDeviceCaps(Printer.Handle,LOGPIXELSY);

Ну, а в чёрно-белом режиме, это просто свойство поменять соответствующее нужно (в TPrinter) и всё.



Страницы: 1 вся ветка

Текущий архив: 2002.03.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
14-9268
veZuk
2002-01-12 02:40
2002.03.04
Сколько дать за перевод?


6-9264
Mag
2001-12-14 12:55
2002.03.04
Через какой компонент можно управлять по IPX другим компом???


14-9296
Digitman
2002-01-15 18:33
2002.03.04
Барышни, наслушавшись здешнего бреду, покидают нас ?


1-9207
knyaz17
2002-02-12 12:01
2002.03.04
Как вставить в Word текст из буфера обмена?


1-9144
VDXMAN
2002-02-17 17:03
2002.03.04
HELP ME