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

Вниз

Печать bitmap на canvas принтера.   Найти похожие ветки 

 
Дмитрий В. Белькевич ©   (2003-09-04 16:35) [0]

Переношу несколько bitmap нижеследующим способом. Иногда переносятся, иногда - нет (часть битмапов вообще не печатается). Входные параметры нормальные. Если ставить sleep(200) перед процедурой, то иногда легчает в зависимости от машины. Как я понимаю, где-то запускается асинхронный процесс, завершение которого нужно ждать. StretchDIBits всегда возвращает код успешнго завершения. Ну и как всегда, два вечных вопроса: кто виноват и что делать?

procedure PrintBitmap(Canvas: TCanvas; DestRect: TRect; Bitmap: TBitmap);
var
BitmapHeader: pBitmapInfo;
BitmapImage: Pointer;
HeaderSize: DWORD;
ImageSize: DWORD;
begin
GetDIBSizes(Bitmap.Handle, HeaderSize, ImageSize);
GetMem(BitmapHeader, HeaderSize);
GetMem(BitmapImage, ImageSize);
try
GetDIB(Bitmap.Handle, Bitmap.Palette, BitmapHeader^, BitmapImage^);
if StretchDIBits(Canvas.Handle,
DestRect.Left, DestRect.Top, // Destination Origin
DestRect.Right - DestRect.Left, // Destination Width
DestRect.Bottom - DestRect.Top, // Destination Height
0, 0, // Source Origin
Bitmap.Width, Bitmap.Height, // Source Width & Height
BitmapImage,
TBitmapInfo(BitmapHeader^),
DIB_RGB_COLORS,
SRCCOPY) = -1 then
ShowMessage(IntToStr(GetLastError));
finally
FreeMem(BitmapHeader);
FreeMem(BitmapImage);
end
end;


 
KSergey ©   (2003-09-05 07:47) [1]

Смотреть было лень
Код вот отсюда работает точно.
http://doc.trecom.tomsk.su/Delphi/UnofficialDevelopersFAQ/pages/printe r.htm
Где-то в конце списка пример есть печати картинок.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-58668
HELP_HELP_HELP
2003-09-05 06:09
2003.09.18
Help!!!


1-58679
McMurfy
2003-09-04 19:00
2003.09.18
Ошибка при присваивании


1-58645
Olivka
2003-09-05 09:42
2003.09.18
как сделать, чтобы программа перезапустила саму себя


3-58556
pvv
2003-08-28 17:13
2003.09.18
Отключение прокручивания в DBGride


1-58683
Dimich1978
2003-09-04 15:47
2003.09.18
Как БЫСТРО найти слово в текстовом файле