Problemas no evento Onclose
Tenho o seguinte procedimento no evento OnClose de um formulário:
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.
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.
Eliane Dorr
Curtidas 0
Respostas
Edilcimar
13/12/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
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
GOSTEI 0
Eliane Dorr
13/12/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:
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:
GOSTEI 0
Massuda
13/12/2005
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?
GOSTEI 0
Eliane Dorr
13/12/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.
GOSTEI 0
Eliane Dorr
13/12/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.
GOSTEI 0
Massuda
13/12/2005
Interessante. Não uso CLX, não imaginava que tivesse esse tipo de diferença.
GOSTEI 0