QRImage imprime tudo preto

04/07/2006

0

Caros colegas, estou c/ um problemão aqui.

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

Rogick

Responder

Posts

04/07/2006

Rogick

Poxa! Ninguém pode ajudar? :cry:


Responder

07/03/2024

Maurício

Poxa! Ninguém pode ajudar? :cry:


Você acredita que o meu só em alguns clientes sai preto. Acho que vou mandar formatar o computador do cliente. rs rs rs
Responder

08/03/2024

Arthur Heinrich

Eu nunca usei esse QRImage. Mas já fiz experimentos para impressão de imagem diretamente no canvas da impressora.

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;

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar