GARANTIR DESCONTO

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


Gordonsp

Gordonsp

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


Responder

Gostei + 0

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

Aceitar