Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.05.2007, 18:17
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию Печать Канвы компонента 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  
Старый 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();
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #3  
Старый 29.05.2007, 19:22
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию

Сделал всё именно так. Увы, не работает... :-( . Думал ошибка где то ранее произошла, но сделав другой опытный проект, понял, что фишка именно в печати... Прилагаю исходник опытного проекта всё пашет кроме печати.... Точнее печатается пустой лист.

Прога после нажатия на кнопку с графиком рисует на канве image'a произвольный график и после нажатия на кнопку с принтом должна распечатать этот график, но, как уже говорил, увы....
Вложения
Тип файла: zip Print.zip (12.6 Кбайт, 22 просмотров)
Ответить с цитированием
  #4  
Старый 29.05.2007, 19:28
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от AXS
Сделал всё именно так. Увы, не работает... :-( . Думал ошибка где то ранее произошла, но сделав другой опытный проект, понял, что фишка именно в печати... Прилагаю исходник опытного проекта всё пашет кроме печати.... Точнее печатается пустой лист.

Прога после нажатия на кнопку с графиком рисует на канве image'a произвольный график и после нажатия на кнопку с принтом должна распечатать этот график, но, как уже говорил, увы....
Смотри, дело в настройках принтера. На виртуальный принтер печатается. А реального у меня под рукой нет. Увы!
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #5  
Старый 29.05.2007, 19:49
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию

С других то программ печатается!
Ответить с цитированием
  #6  
Старый 29.05.2007, 20:17
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию

Блин, мож кто ещё посмотрит исходник? (у кого принтер есть)
Ответить с цитированием
  #7  
Старый 30.05.2007, 18:25
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от AXS
Блин, мож кто ещё посмотрит исходник? (у кого принтер есть)
Ну у тебя на виртуальный печатается?
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #8  
Старый 30.05.2007, 19:35
Аватар для AXS
AXS AXS вне форума
Новичок
 
Регистрация: 26.11.2006
Адрес: РК г. Талдыкорган
Сообщения: 67
Репутация: 15
По умолчанию

Кое что прояснилось. Не печатается на сетевой принтер. Сеть - два компа соединенных ч-з блютуз. Принтер настроен для общего доступа все проги печатают на него и моя прога его тоже нормально видит, но печатает пустой лист. Какие есть нюансы или заморочки при работе с сетевым принтом?

(Delphi 6)
Ответить с цитированием
  #9  
Старый 31.05.2007, 19:02
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от AXS
Кое что прояснилось. Не печатается на сетевой принтер. Сеть - два компа соединенных ч-з блютуз. Принтер настроен для общего доступа все проги печатают на него и моя прога его тоже нормально видит, но печатает пустой лист. Какие есть нюансы или заморочки при работе с сетевым принтом?

(Delphi 6)
Не знаю никогда даже не сталкивался с таким поворотом.
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter