Fórum QRImage imprime tudo preto #324736
04/07/2006
0
Eu tenho um relatório onde eu desenho em um QRImage usando Canvas o mapa de um salão de festas com a disposição das cadeiras.
O problema é que após o 2° ou 3° preview ele mostra tudo preto.
Aqui está uma parte do código
with QRImage.Canvas do begin // inicializar mapmode SetMapMode(Handle, MM_ANISOTROPIC); SetWindowExtEx(Handle, 820, 820, nil); SetViewportExtEx(Handle, 100, 100, nil); SetWindowOrgEx(Handle, 0, 0, nil); SetViewportOrgEx(Handle, 0, 0, nil); SetViewportOrgEx(Handle, QRImage.Left, QRImage.Top, nil); // Desenha o evento no QRImage mEventos.DesenharEvento(QRImage.Canvas); Font.Style := [fsBold]; s := ´Andar ´ + cdsReport.FieldByName(´ANDAR´).AsString; r := ClipRect; DrawText(Handle, PChar(s), Length(s), r, DT_CENTER or DT_TOP or DT_SINGLELINE); end;
Como eu resolvo esse problema?
Desde já agradeço pela atenção.[/code]
Rogick
Curtir tópico
+ 0Posts
04/07/2006
Rogick
Gostei + 0
07/03/2024
Maurício
Gostei + 0
08/03/2024
Arthur Heinrich
Nem todos os comandos que plotam imagens funcionaram comigo.
Tive que fazer algumas gambiarras.
procedure PrintBitmap(Bitmap:TBitmap; Cnv:TCanvas; X, Y, pWidth, pHeight: Integer);
var
Info : PBitmapInfo;
InfoSize : dword;
Image : Pointer;
ImageSize: dword;
begin
If (pWidth < 1) or (pHeight < 1) then begin
pWidth := Bitmap.Width;
pHeight := Bitmap.Height;
end;
with Bitmap do begin
GetDIBSizes(Handle, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
try
Image := AllocMem(ImageSize);
try
GetDIB(Handle, Palette, Info^, Image^);
with Info^.bmiHeader do
StretchDIBits(Cnv.Handle, X, Y, pWidth,
pHeight, 0, 0, biWidth, biHeight, Image, Info^,
DIB_RGB_COLORS, SRCCOPY)
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
end;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)