13/12/2005

Problemas no evento Onclose

Tenho o seguinte procedimento no evento OnClose de um formulário:
procedure TFConsultaFornecedores.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  if MessageDlg(´Deseja fechar o aplicativo?´,mtConfirmation,[mbYes,mbNo&93;,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.


Eliane Dorr

Respostas

13/12/2005

Edilcimar

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


Responder Citar

13/12/2005

Eliane Dorr

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:


Responder Citar

13/12/2005

Massuda

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


Responder Citar

13/12/2005

Eliane Dorr

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.


Responder Citar

13/12/2005

Eliane Dorr

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.


Responder Citar

13/12/2005

Massuda

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


Responder Citar