Показать сообщение отдельно
  #2  
Старый 25.05.2007, 20:01
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от AXS
Вроде всё элементарно но...
Я рисую на канве Image'a прямоугольники типа:
Image1.Canvas.Brush.Style:=bsDiagCross;
Image1.Canvas.Brush.Color:=clAqua;
Image1.Canvas.Rectangle(0,0,200,150);

Затем пытаюсь печатать:
Printer.BeginDoc;

PointX:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIX ELSX)/130;
PointY:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIX ELSY)/130;

X1:=round((Printer.PageWidth-Image1.Width*PointX)/2);
Y1:=round((Printer.PageHeight-Image1.Height*PointY)/2);
X2:=round(X1+Image1.Width*PointX);
Y2:=round(Y1+Image1.Height*PointY);

Printer.Canvas.CopyRect(Rect(X1,Y1,X2,Y2),Image1.C anvas,
Rect(0,0,Image1.Width,Image.Height));

Printer.EndDoc;

Печатается, да, но... ПУСТАЯ страница!

Может подскажете, а то скоро истерика начнётся.... ещё и с женой поссорился... в общем дело жизненно важное...
Printer.BeginDoc();
BitBlt(Printer.Canvas.Handle, 0, 0, Image1.Width, Image1.Height,
Image1.Canvas.Handle, 0, 0, SRCCOPY);
Printer.EndDoc();
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием