Só para especialistas em Delphi

18/02/2003

0

Uso o XP-Delphi5-InterBase6

Eu tiro qualquer relatório varias vezes usando a rotina abaixo e tudo sai normalmente, em uma determinada vez da o erro na linha marcada com seta.

“Access violation at address 0051B815 in module ´MENU.exe´. Read of address 018911DA” ,

ou

“A component named QRStantardPreview already exist.”


Acredito que o componente QRStandardPreview em um determinado momento não é destruído da memória, Mas como destruilo como resolver de outra forma?

Application.CreateForm(TRazaoR_f,RazaoR_f);
RazaoR_f.QRazaoR_f.PreviewModal; <<=====
RazaoR_f.QRazaoR_f.Destroy;
RazaoR_f.QRazaoR_f:=nil;
RazaoR_f:=nil;


Anonymous

Anonymous

Responder

Posts

18/02/2003

Anonymous

Tente colocar, [b:46a09d3bb6]imediatamente antes[/b:46a09d3bb6] de RazaoR_f:=nil;, RazaoR_f.Free;


Responder

18/02/2003

Anonymous

Esse problema é comum no Quick Report, ele costuma dar esses erros na plataforma XP, tinha um sistema que tinha relatórios em Quick Report, tive que mudar para outro gerador de relatório, pois os mesmo não funcionavam no XP


Responder

18/02/2003

Anonymous

Tente fechar o Form que contém o TQuickRep imediatamente após chamar o preview...

Application.CreateForm(TRazaoR_f, RazaoR_f);
RazaoR_f.QRazaoR_f.PreviewModal;
RazaoR_f.Close; <<<=========


Responder

18/02/2003

Anonymous

Obrigado a todos mas nada funcionou.
Acho que e bug do Report


Responder

18/02/2003

Anonymous

Mas o erro que vc diz não acontece em run-time, nao eh?
esse problema acontece qnd vc dá o preview em tempo de projeto,
em run-time nunca aconteceu comigo.

valeu.


Responder

18/02/2003

Anonymous

desculpa ai,
nao vi que vc tinha colocado o pedaco do fonte que dah erro. :)
nesse caso, acho que o problema estah em usar previewmodal,
sempre uso somente preview eh funciona blz.


Responder

18/02/2003

Anonymous

Faça o seguinte:

if RazaoR_f = nil Then
Application.CreateForm(TRazaoR_f,RazaoR_f)

RazaoR_f.QRazaoR_f.PreviewModal; <<=====
RazaoR_f.QRazaoR_f.Destroy;
RazaoR_f.QRazaoR_f:=nil;
RazaoR_f:=nil;

Valeu

Até mais


Responder

18/02/2003

Anonymous

O erro acontece em tempo de projeto e em run-time.
Com previewmodal e só preview.

Esperimente tirar o relatório umas vinte vezes sem sair do sistema.
As vezes comigo dá o erro na terceira vez as vezes dá na enesima.

Obrigado


Responder

19/02/2003

Adilsond

procedure TMeuForm.VisualizarRel(Value: Boolean);
begin
with TRazaoR_f.Create(Self) do
try
QRazaoR_f.DataSet.Open; // monto os parametros da query no beforeopen
try
if QRazaoR_f.DataSet.IsEmpty then
raise Exception.Create(´Não existem registros para a opção escolhida.´);
case Value of
True : QRazaoR_f.Preview;
False: QRazaoR_f.Print;
end;
finally
QRazaoR_f.DataSet.Close;
end;
finally
QRazaoR_f.QRPrinter := nil;
QRazaoR_f.Free;
Free;
end;
end;


Responder

19/02/2003

Anonymous

Utilize o procedimento abaixo:

procedure QRDestroi;
var
nIdx: Integer;
begin
for nIdx := (Screen.FormCount-1) downto 0 do
with Screen.Forms[nIdx] do
if ClassName = ´TQRStandardPreview´ then
Close;
end;
======================

Faça assim no botão de manda dar o preview:
QrDestroi;
QuickRep1.PreviewModal;


Responder

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

Aceitar