Só para especialistas em Delphi
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;
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
Curtidas 0
Respostas
Anonymous
18/02/2003
Tente colocar, [b:46a09d3bb6]imediatamente antes[/b:46a09d3bb6] de RazaoR_f:=nil;, RazaoR_f.Free;
GOSTEI 0
Anonymous
18/02/2003
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
GOSTEI 0
Anonymous
18/02/2003
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; <<<=========
Application.CreateForm(TRazaoR_f, RazaoR_f);
RazaoR_f.QRazaoR_f.PreviewModal;
RazaoR_f.Close; <<<=========
GOSTEI 0
Anonymous
18/02/2003
Obrigado a todos mas nada funcionou.
Acho que e bug do Report
Acho que e bug do Report
GOSTEI 0
Anonymous
18/02/2003
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.
esse problema acontece qnd vc dá o preview em tempo de projeto,
em run-time nunca aconteceu comigo.
valeu.
GOSTEI 0
Anonymous
18/02/2003
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.
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.
GOSTEI 0
Anonymous
18/02/2003
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
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
GOSTEI 0
Anonymous
18/02/2003
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
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
GOSTEI 0
Adilsond
18/02/2003
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;
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;
GOSTEI 0
Anonymous
18/02/2003
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;
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;
GOSTEI 0