Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2008-03-05 18:40:41 ЛС | профиль | цитата
nesco писал(а):
tsdima, ты кодом вывода поделись

Дык я ничего особенного не делал. Поменял Img_Bmp абсолютно аналогично, как и в предыдущем эксперименте (добавил процедуру Context, скопировав Handle, убрал запрос dc у окна и присвоил напрямую из потока). Закомментировал свой же SetMapMode в hiPrinter.pas. Схема тоже аналогичная, с использованием компонента Resize.

nesco писал(а):
доступ к принтеру по сети, через сервер

Дык и у меня также.

nesco писал(а):
Вот, приклеил, посмотри

Я полагал, что _prop_DrawSource будет делать только две функции:
1. выдать контекст
2. освободить его

_prop_DrawSource: procedure(var _Data:TData; var dc:HDC; nFunc:word) of object;

А мясо надо оставить в самом компоненте.

------------ Дoбавленo:

После того, как ты растянул картинку в памяти при помощи StretchBlt можно было выводить на принтер при помощи BitBlt.
Твоя ошибка, наверное, была в том, что ты использовал SetMapMode(pdc, MM_HIMETRIC), а то, что координата Y растёт в другом направлении - не учёл. Фактически, в этом случае, либо координату Y надо задавать отрицательную, либо использовать SetViewportOrgEx(pdc, 0, -PageHeight, nil)
карма: 1

0