Dúvida com modalresult
A rotina exibida logo abaixo funcionava certinho, só que eu fiz uma pequena modificação no TFORM em questão, incluindo um questionamento no seu ONCLOSE com um messagebox, onde o usuário é questionado se deseja sair ou não. Só que o teste do mrOK parou de funcionar. Por que isso ocorre? Como posso contornar este problema?
Obrigado a quem puder ajudar.
Rotina:
try
Application.CreateForm(TFormBaixaPagQuitacoes, FormBaixaPagQuitacoes);
with DMDados do begin
ClientDataSetBaixaPagto.Params[0].AsInteger := SimpleDataSetConQuitacoesPagtoCTRLPAGTO.AsInteger;
ClientDataSetBaixaPagto.Open;
end;
if FormBaixaPagQuitacoes.ShowModal = mrOk then begin
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
end;
finally
FormBaixaPagQuitacoes.Free;
end;
Obrigado a quem puder ajudar.
Rotina:
try
Application.CreateForm(TFormBaixaPagQuitacoes, FormBaixaPagQuitacoes);
with DMDados do begin
ClientDataSetBaixaPagto.Params[0].AsInteger := SimpleDataSetConQuitacoesPagtoCTRLPAGTO.AsInteger;
ClientDataSetBaixaPagto.Open;
end;
if FormBaixaPagQuitacoes.ShowModal = mrOk then begin
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
end;
finally
FormBaixaPagQuitacoes.Free;
end;
Aprendiz_ce
Curtidas 0
Respostas
Jackson Gomes
29/11/2005
Faltou setar o CanClose para True...
GOSTEI 0
Aprendiz_ce
29/11/2005
[quote:2d4e00fc82=´Jackson Gomes´]Faltou setar o CanClose para True...[/quote:2d4e00fc82]
Jackson,
Confeço que não entendi. Será que você poderia ser mais especifico.
Obrigado e aguardo um retorno.
Jackson,
Confeço que não entendi. Será que você poderia ser mais especifico.
Obrigado e aguardo um retorno.
GOSTEI 0
Jackson Gomes
29/11/2005
if FormBaixaPagQuitacoes.ShowModal = mrOk then begin
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
[b:ea5b19eb73]CanClose := True;[/b:ea5b19eb73]
end;
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
[b:ea5b19eb73]CanClose := True;[/b:ea5b19eb73]
end;
GOSTEI 0
Aprendiz_ce
29/11/2005
[quote:d78e36a02c=´Jackson Gomes´]if FormBaixaPagQuitacoes.ShowModal = mrOk then begin
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
[b:d78e36a02c]CanClose := True;[/b:d78e36a02c]
end;[/quote:d78e36a02c]
Jackson,
Obrigado mais uma vez pela sua atenção, mas acho que você não entendeu o meu problema.
O problema é justamente este: Ao fechar o ´FormBaixaPagQuitaçoes´ o código acima não é executado. É como se o mrOK não estivesse sendo retornado. O Canclose não tem nada haver com o processo em questão. Ele só serviria para permitir ou não o fechamento do ´FormBaixaPagQuitacoes´. OK?
Valeu e qualquer ajuda será bem vinda.
{ Atualiza consulta caso algum documento seja baixado. }
BBtnProcurar.Click;
[b:d78e36a02c]CanClose := True;[/b:d78e36a02c]
end;[/quote:d78e36a02c]
Jackson,
Obrigado mais uma vez pela sua atenção, mas acho que você não entendeu o meu problema.
O problema é justamente este: Ao fechar o ´FormBaixaPagQuitaçoes´ o código acima não é executado. É como se o mrOK não estivesse sendo retornado. O Canclose não tem nada haver com o processo em questão. Ele só serviria para permitir ou não o fechamento do ´FormBaixaPagQuitacoes´. OK?
Valeu e qualquer ajuda será bem vinda.
GOSTEI 0
Jackson Gomes
29/11/2005
acho que viajei totalmente na minha resposta... bom, vc disse que colocou o MessageDlg no OnClose. Não seria melhor no OnCloseQuery?
GOSTEI 0
Aprendiz_ce
29/11/2005
[quote:b84b2d4f8d=´Jackson Gomes´]acho que viajei totalmente na minha resposta... bom, vc disse que colocou o MessageDlg no OnClose. Não seria melhor no OnCloseQuery?[/quote:b84b2d4f8d]
Creio que não! O ato é que se eu retirar o questionamento a coisa funciona, mas quando coloco, a linha onde tem condição com mrOk não é executada.
Valeu e qualquer novidades por favor me avise.
Creio que não! O ato é que se eu retirar o questionamento a coisa funciona, mas quando coloco, a linha onde tem condição com mrOk não é executada.
Valeu e qualquer novidades por favor me avise.
GOSTEI 0
Jairroberto
29/11/2005
Olá, aprendiz_ce!
Verifique a rotina em que você define o ´ModalResult´ do ´FormBaixaPagQuitacoes´.
Você também pode verificar qual é ´ModalResult´ retornado pelo ´FormBaixaPagQuitacoes´ da seguinte forma:
Considere que:
mrOk = 1
mrCancel = 2
mrYes = 6
mrNo = 7
dentre outros.
Um abraço,
Jair
Verifique a rotina em que você define o ´ModalResult´ do ´FormBaixaPagQuitacoes´.
Você também pode verificar qual é ´ModalResult´ retornado pelo ´FormBaixaPagQuitacoes´ da seguinte forma:
var i: Integer; begin ... i := FormBaixaPagQuitacoes.ShowModal; ShowMessage(IntToStr(i)); if i = mrOk then begin BBtnProcurar.Click; end; ...
Considere que:
mrOk = 1
mrCancel = 2
mrYes = 6
mrNo = 7
dentre outros.
Um abraço,
Jair
GOSTEI 0
Aprendiz_ce
29/11/2005
Olá, aprendiz_ce!
Verifique a rotina em que você define o ´ModalResult´ do ´FormBaixaPagQuitacoes´.
Você também pode verificar qual é ´ModalResult´ retornado pelo ´FormBaixaPagQuitacoes´ da seguinte forma:
Considere que:
mrOk = 1
mrCancel = 2
mrYes = 6
mrNo = 7
dentre outros.
Um abraço,
Jair
var i: Integer; begin ... i := FormBaixaPagQuitacoes.ShowModal; ShowMessage(IntToStr(i)); if i = mrOk then begin BBtnProcurar.Click; end; ...
Olá Jair,
Agora sei que o valor retornado é 2 (dois), não sei por que? Pois o ModalResult do ´BBtnBaixar´ do ´FormBaixaPagQuitacoes´ é igual mrOk. Escrevi o codigo que você me passou, mas deu na mesma. Apenas tocamos 6 (seis) por meia dúzia... E aí o que pode ser?
Muito obrigado pela sua atenção e aguardo qualquer dica sua.
GOSTEI 0
Raserafim
29/11/2005
vc precisa ir no botão OK e setar a propriedade ModalResult para mrOK
GOSTEI 0
Jairroberto
29/11/2005
Olá, aprendiz_ce!
Uma das possibilidades pode ser que no código executado pelo ´BBtnBaixar´ você não pode usar o método ´Close´. Se não for isso, descreva o código que você está usando no ´OnClick´ do ´BBtnBaixar´.
Um abraço,
Jair
Uma das possibilidades pode ser que no código executado pelo ´BBtnBaixar´ você não pode usar o método ´Close´. Se não for isso, descreva o código que você está usando no ´OnClick´ do ´BBtnBaixar´.
Um abraço,
Jair
GOSTEI 0
Aprendiz_ce
29/11/2005
Olá, aprendiz_ce!
Uma das possibilidades pode ser que no código executado pelo ´BBtnBaixar´ você não pode usar o método ´Close´. Se não for isso, descreva o código que você está usando no ´OnClick´ do ´BBtnBaixar´.
Um abraço,
Jair
Correto! O problema todo era o ´close´ que eu tinha colocado sem necessidade. Quando fiz a manutenção coloquei o ´close´ de quebra (composivamente), achei que estava faltando. Quando retirei o ´bendido´ a coisa voltou ao normal.
Jair muito obrigado pela atenção um forte abraço e até a proxima.
GOSTEI 0