Re: [delphi-br] [ Problema Memoria com Quickreport]
Isso. Este problema e esta solução não são meus. Esta dica foi posta aqui na lista. Experimente colocar antes de imprimir a banda que contem o logotipo. --- Em ter, 22/9/09, Marcio escreveu: De: Marcio Assunto: Re: [delphi-br] [ Problema Memoria com Quickreport] Para: delphi-br@yahoogrupos.com.br Data: Terça-feira, 22 de Setembro de 2009, 11:36 Fabio, tu diz que eu tenho que usar sleep({pode ser 500}). dar um tempo em cada impressao ??? att. Marcio. 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]
Re: [delphi-br] [ Problema Memoria com Quickreport]
Fabio, tu diz que eu tenho que usar sleep({pode ser 500}). dar um tempo em cada impressao ??? att. Marcio.
Re: [delphi-br] [ Problema Memoria com Quickreport]
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 escreveu: De: Marcio 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]
Re: [delphi-br] [ Problema Memoria com Quickreport]
Para localizar esvaziamento de memoória, uso o seguinte: ReportMemoryLeaksOnShutdown := (DebugHook <> 0); Isso funciona no Delphi 2007. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] [ Problema Memoria com Quickreport]
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.QRRodapeAfterPrint(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 PageFooterBand1AfterPrint BitMap := TBitMap.Create; try if not FileExists(PastaLogotipo + '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(PaperLengthValue) div 6; Y := YPos(PaperLengthValue) div 4; X := XPos(PaperWidthValue) div 4; R := Rect(X, 2 * Y, 3 * X, 4 * Y); ImprimeBitMap(Canvas, BitMap, R); end; end; finally BitMap.Free; end; // end; procedure TfrmDANFE.ImprimeBitMap(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;