Array
(
)

Problemas no evento Onclose

Eliane Dorr
   - 13 dez 2005

Tenho o seguinte procedimento no evento OnClose de um formulário:
#Código

procedure TFConsultaFornecedores.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if MessageDlg(´Deseja fechar o aplicativo?´,mtConfirmation,[mbYes,mbNo],0)= mrYes then
begin
Action:=caFree;
DMEstoque_MP.CDSForne.Close;
DMEstoque_MP.CDSFornec.Close;
end
else
Action:=caNone;
end;

O problema é que ao clicar no botão fechar[X], primeiro o formulário é fechado e depois ele me mostra a MsgDlg. Não tô conseguindo achar o problema.... :oops:
Se alguém puder me dar uma dica, obrigada.


Edilcimar
   - 13 dez 2005

procedure TFConsultaFornecedores.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if MessageDlg(´Deseja fechar o aplicativo?´,mtConfirmation,[mbYes,mbNo],0)= mrYes then
begin
DMEstoque_MP.CDSForne.Close;
DMEstoque_MP.CDSFornec.Close;
FormNomedoForm := Release;
end
else
Action:=caNone;
end;

tente este


Eliane Dorr
   - 13 dez 2005

Não funcionou. Interessante que no evento OnCloseQuery funciona.
Outra coisa: tenho também um BtnFechar, e clicando sobre ele, ocorre a mesma coisa, o formulário é fechado e depois aparece a MsgDlg. Não sei o que estou fazendo de errado. :roll:


Massuda
   - 13 dez 2005

O correto seria você por esse código no evento .OnCloseQuery do form...o evento .OnClose acontece depois que o form foi fechado. Porque você não pode usar o .OnCloseQuery?


Eliane Dorr
   - 13 dez 2005

Na verdade eu posso usar OnCloseQuery. Eu só queria esclarecer esta dúvida quanto ao OnClose, porque em outro sistema que um colega está desenvolvendo, funciona certinho o evento OnClose. Verificamos se há alguma diferença entre os procedimentos e não encontramos nada. Mesmo assim, muito obrigada.


Eliane Dorr
   - 13 dez 2005

Há sim uma diferença, a minha aplicação é CLX e a outra não. Logo, creio que aí está o problema. Só pra testar, criei uma simples aplicação e o evento OnClose funcionou legal.


Massuda
   - 13 dez 2005

Interessante. Não uso CLX, não imaginava que tivesse esse tipo de diferença.