Este erro já tinha sido reportado a muitos anos atrás e veja a solução que foi dada: Qdo mando imprimir várias guias (empresas diferentes) a primeira imprime correto, depois comeca a imprimir faltando logotipo. solucao (não testado) ja vi gente resolvendo problema parecido com um sleep({pode ser 500}).
Espero ter ajudado. --- Em ter, 22/9/09, Marcio <mar...@sulfabril.com.br> escreveu: De: Marcio <mar...@sulfabril.com.br> Assunto: [delphi-br] [ Problema Memoria com Quickreport] Para: delphi-br@yahoogrupos.com.br Data: Terça-feira, 22 de Setembro de 2009, 9:29 Ola pessoal, desenvolvi um relatorio (Nota Fiscal) com uma imagem no plano de fundo. estou usando um TQRimagem para o logotipo no canto superior e a rotina abaixo para gerar marca dagua no centro da pagina .. tenho percebido que qndo imprimo as notas esta a memoria usada esta ficando alto e depois um tempo , hora imprime as images hora nao. sera algum problema de esvaziamento de memoria ?/ alguem tem alguma ideia ... Att. Marcio. procedure TfrmDANFE.QRRodapeA fterPrint( Sender: TQRCustomBand; BandPrinted: Boolean); var xx : integer; BitMap : TBitMap; {marca dagua} R : TRect; {marca dagua} X, Y : integer; {marca dagua} begin xx := 0; /////// //rotina para imprimir marca dagua no QuickReport //incluir no PageFooterBand1Afte rPrint BitMap := TBitMap.Create; try if not FileExists(PastaLog otipo + 'sulfabril_logo. bmp') then begin messagebox(handle, 'O arquivo de imagem n?existe ou foi removido !','Aten?',MB_ OK or MB_ICONWARNING) ; SetActiveWindow( Application. Handle); end else begin BitMap.LoadFromFile ( PastaLogotipo +'sulfabril_ logo.bmp' ); with QuickRep2.QRPrinter do begin //Y := YPos(PaperLengthVal ue) div 6; Y := YPos(PaperLengthVal ue) div 4; X := XPos(PaperWidthValu e) div 4; R := Rect(X, 2 * Y, 3 * X, 4 * Y); ImprimeBitMap( Canvas, BitMap, R); end; end; finally BitMap.Free; end; //////////// ///////// ///////// ///////// ///////// // end; procedure TfrmDANFE.ImprimeBi tMap(Cnv: TCanvas; BitMap: TBitMap; R: TRect); var Info : PBitMapInfo; InfoSize : DWORD; Image : Pointer; ImageSize : DWORD; begin with BitMap do begin GetDIBSizes( Handle, InfoSize, ImageSize); GetMem(Info, InfoSize); try Getmem(Image, ImageSize); try GetDIB(Handle, Palette, Info^,Image^ ); with Info^.bmiHeader do StretchDIBits( Cnv.Handle, R.Left, R.Top, R.Right - R.Left,R.Bottom - R.Top, 0, 0, biWidth, biHeight, Image, Info^, DIB_RGB_COLORS, SRCAND); finally FreeMem(Image, ImageSize); end; finally FreeMem(Info, InfoSize); end; end; end; ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]