Fórum problema ao fechar segundo form #355036
07/03/2008
0
Bom Dia a Todos!
Venho mais uma vez recorrer ao conhecimento de todos para resolver um problema que a principio seria simples de resolver, mas graças a uma modelagem errônea estou pagando um preço por isso.
Tenho dois forms, um criado com a classe TForm e outro criado com a classe TQuickRep.
No form principal (TForm) tenho um botão Visualizar que crio e chama um segundo form (TQuickRep), conforme código abaixo:
procedure TfmRelRefeicoesXEmpresaForm.btnVisualizacaoClick(Sender: TObject);
begin
try
Application.CreateForm(TfmRelRefeicoesXEmpresaForm_Visual, fmRelRefeicoesXEmpresaForm_Visual);
fmRelRefeicoesXEmpresaForm_Visual.DataSet := fmRelRefeicoesXEmpresaForm.CDSReportPadrao;
fmRelRefeicoesXEmpresaForm_Visual.tag:= 0;
case TBitBtn(Sender).Tag of
0 : fmRelRefeicoesXEmpresaForm_Visual.Preview;
1 : fmRelRefeicoesXEmpresaForm_Visual.Print;
end;
finally
freeandnil(fmRelRefeicoesXEmpresaForm_Visual);
end;
end;
O problema que se o usuário minimizar o segundo Form (TQuickRep) e mandar visualizar novamente ele dá erro impossibilitando inclusive de carregar o form já aberto.
Gostaria de saber se alguém teria uma solução para o problema, uma vez que fiz varias tentativas como por exemplo:
If assigned(fmRelRefeicoesXEmpresaForm_Visual) then
Begin
TForm(fmRelRefeicoesXEmpresaForm_Visual).close;
TForm(fmRelRefeicoesXEmpresaForm_Visual).destroy;
End;
E de nada adiantou.
Agradeço a todos pela ajuda e fico no aguardo urgente de uma resposta.
Anderson
Venho mais uma vez recorrer ao conhecimento de todos para resolver um problema que a principio seria simples de resolver, mas graças a uma modelagem errônea estou pagando um preço por isso.
Tenho dois forms, um criado com a classe TForm e outro criado com a classe TQuickRep.
No form principal (TForm) tenho um botão Visualizar que crio e chama um segundo form (TQuickRep), conforme código abaixo:
procedure TfmRelRefeicoesXEmpresaForm.btnVisualizacaoClick(Sender: TObject);
begin
try
Application.CreateForm(TfmRelRefeicoesXEmpresaForm_Visual, fmRelRefeicoesXEmpresaForm_Visual);
fmRelRefeicoesXEmpresaForm_Visual.DataSet := fmRelRefeicoesXEmpresaForm.CDSReportPadrao;
fmRelRefeicoesXEmpresaForm_Visual.tag:= 0;
case TBitBtn(Sender).Tag of
0 : fmRelRefeicoesXEmpresaForm_Visual.Preview;
1 : fmRelRefeicoesXEmpresaForm_Visual.Print;
end;
finally
freeandnil(fmRelRefeicoesXEmpresaForm_Visual);
end;
end;
O problema que se o usuário minimizar o segundo Form (TQuickRep) e mandar visualizar novamente ele dá erro impossibilitando inclusive de carregar o form já aberto.
Gostaria de saber se alguém teria uma solução para o problema, uma vez que fiz varias tentativas como por exemplo:
If assigned(fmRelRefeicoesXEmpresaForm_Visual) then
Begin
TForm(fmRelRefeicoesXEmpresaForm_Visual).close;
TForm(fmRelRefeicoesXEmpresaForm_Visual).destroy;
End;
E de nada adiantou.
Agradeço a todos pela ajuda e fico no aguardo urgente de uma resposta.
Anderson
Gordonsp
Curtir tópico
+ 0
Responder
Posts
07/03/2008
Onjahyr
Faça a verificação antes de chamar o relatório se o formRelatorio é [b:3b57c3e0a3]Nil[/b:3b57c3e0a3], se for é porque ele não foi criado ainda (lembrando que ao fechar o formRelatorio deve colocar ele como Nil para informar que ele não é criado) FormRelatorio := Nil; (ao sair do form)
antes de entrar: If FormRelatorio = Nil then FormRelatorio.Create....
Blz
antes de entrar: If FormRelatorio = Nil then FormRelatorio.Create....
Blz
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)