-
Здравствуйте! Печатаю с помощью TPrinter текст и рисунки. Столкнулся с тем, что надписи перекрывают собой рисунок. Т.е. нужен прозрачный фон. Однако код, как везде рекомендуют: <CODE var bk_mode:integer; ... bk_mode := SetBkMode(Printer.Canvas.Handle, TRANSPARENT); Printer.Canvas.StretchDraw(rect(0,0,10,10),Image1.Picture.Bitmap); Printer.Canvas.Font.Assign(mainform.font); Printer.Canvas.TextOut(0,0,'Текст'); SetBkMode(Printer.Canvas.Handle, bk_mode);>
Код вызывает ошибку доступа.
-
Причем глюк только при обращении к caption формы (mainform.caption). Ничего не понимаю.
-
> Код вызывает ошибку доступа.
не мудрено
-
А что я не так делаю?
-
Единственное, что ошибку выдает почему-то в модуле с компонентом RzButton (я использую библиотеку Raize - раньше никогда с ними проблем не было). Получается, что из-за прозрачного фона на Printer.Canvas какая-то ерунда получается в модуле RzButton.
-
или мы всё делаем через API, или всё через VCL, а значит так var
TBrushStyle:b_Stype;
...
b_Stype := Printer.Canvas.Handle.Brush.Style;
Printer.Canvas.Handle.Brush.Style = bs_clear;
Printer.Canvas.StretchDraw(rect(0,0,10,10),Image1.Picture.Bitmap);
Printer.Canvas.Font.Assign(mainform.font);
Printer.Canvas.TextOut(0,0,'Текст');
Printer.Canvas.Handle.Brush.Style:=B_Style;
|