|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Печать Канвы компонента TImage
Вроде всё элементарно но...
Я рисую на канве 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; Печатается, да, но... ПУСТАЯ страница! Может подскажете, а то скоро истерика начнётся.... ещё и с женой поссорился... в общем дело жизненно важное... |
#2
|
||||
|
||||
Цитата:
BitBlt(Printer.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, Image1.Canvas.Handle, 0, 0, SRCCOPY); Printer.EndDoc(); --------------------------------------------- Программирование - не профессия, а стиль жизни |
#3
|
||||
|
||||
Сделал всё именно так. Увы, не работает... :-( . Думал ошибка где то ранее произошла, но сделав другой опытный проект, понял, что фишка именно в печати... Прилагаю исходник опытного проекта всё пашет кроме печати.... Точнее печатается пустой лист.
Прога после нажатия на кнопку с графиком рисует на канве image'a произвольный график и после нажатия на кнопку с принтом должна распечатать этот график, но, как уже говорил, увы.... |
#4
|
||||
|
||||
Цитата:
--------------------------------------------- Программирование - не профессия, а стиль жизни |
#5
|
||||
|
||||
С других то программ печатается!
|
#6
|
||||
|
||||
Блин, мож кто ещё посмотрит исходник? (у кого принтер есть)
|