Show e ShowModal um pequeno probleminha
Olá pessoal!
Estou com o segunte problema:
No formulário principal onde tenho o menu, abro a consulta de produtos como showmodal, seleciono um produto, abrindo a tela de cadastro para alterar, por exemplo, faço as alterações e fecho o formulário de cadastro.
Ao retornar para o formulário de consulta, era para executar o evento OnActive.
Ai é onde está o problema. Quando uso o show, ao fechar o form de cadastro e retorno para o form de consulta é executado o evento OnActive. Porque quando uso showmodal, ao retornar para o form de consulta não é executado o OnActive?
Obs.: Dentro do OnActive coloquei um comando para atualizar a lista de consulta, refresh, para visualizar a ultima alteração feita.
Alguém poderia me dar uma idéia de como resolver isso.
Agradeço desde já qualquer ajuda.
Estou com o segunte problema:
No formulário principal onde tenho o menu, abro a consulta de produtos como showmodal, seleciono um produto, abrindo a tela de cadastro para alterar, por exemplo, faço as alterações e fecho o formulário de cadastro.
Ao retornar para o formulário de consulta, era para executar o evento OnActive.
Ai é onde está o problema. Quando uso o show, ao fechar o form de cadastro e retorno para o form de consulta é executado o evento OnActive. Porque quando uso showmodal, ao retornar para o form de consulta não é executado o OnActive?
Obs.: Dentro do OnActive coloquei um comando para atualizar a lista de consulta, refresh, para visualizar a ultima alteração feita.
Alguém poderia me dar uma idéia de como resolver isso.
Agradeço desde já qualquer ajuda.
Vagner Almeida
Curtidas 0
Respostas
Rafael Ribeiro
30/01/2012
Vc já tentou usar o evento OnCloseQuery ao invés de OnActive? Sendo assim quando você fechar o formulário, vai disparar o evento.
Espero ter ajudado.
Rafael
Espero ter ajudado.
Rafael
GOSTEI 0
Vagner Almeida
30/01/2012
O evento OnActive fica na tela de consulta, pois essa tela é aberta em outras áreas do sistema, então a idéia e fazê a atualização dos dados sempre que ela abrir.
Essa questão está ok, pois ao abrir ela atualiza os dados.
Encontrei um jeito de resolver, que seria colocar um refresh após o commit do form de cadastro, mas gostaria de obter mais informação mais opções, pois quando uso o form como Show e não ShowModal, funciona sem problema.
Ou seja, quando o form de cadastro é aberto como Show, após eu fechá-lo que retorna para o form de consulta é executado o OnActive do form de consulta, mas isso não acontece quando o form de cadastro é aberto como ShowModal.
Gostaria de saber quais obções eu teria para resolver isso sem fazer gambiarras.
Fico grato pela sua atenção.
Essa questão está ok, pois ao abrir ela atualiza os dados.
Encontrei um jeito de resolver, que seria colocar um refresh após o commit do form de cadastro, mas gostaria de obter mais informação mais opções, pois quando uso o form como Show e não ShowModal, funciona sem problema.
Ou seja, quando o form de cadastro é aberto como Show, após eu fechá-lo que retorna para o form de consulta é executado o OnActive do form de consulta, mas isso não acontece quando o form de cadastro é aberto como ShowModal.
Gostaria de saber quais obções eu teria para resolver isso sem fazer gambiarras.
Fico grato pela sua atenção.
GOSTEI 0
Marco Salles
30/01/2012
Obs.: Dentro do OnActive coloquei um comando para atualizar a lista de consulta, refresh, para visualizar a ultima alteração feita.
Outra opção , a que eu particularmente prefiro é utilizar o ModalResult:=mrOk e testa-lo
mo formulario principal ..
Assim
begin form2:=TForm2.Create(nil); try if form2.ShowModal = mrOk then ////COLOQUE AQUI AS INSTRUÇÔES finally form2.free; form2:=nil; end;
GOSTEI 0
Marco Salles
30/01/2012
obs.: dentro do onactive coloquei um comando para atualizar a lista de consulta, refresh, para visualizar a ultima alteração feita.
outra opção , a que eu particularmente prefiro é utilizar o modalresult:=mrok e testa-lo
mo formulario principal ..
assim
begin form2:=tform2.create(nil); try if form2.showmodal = mrok then ////coloque aqui as instruçôes finally form2.free; form2:=nil; end;
GOSTEI 0
Marco Salles
30/01/2012
obs.: dentro do onactive coloquei um comando para atualizar a lista de consulta, refresh, para visualizar a ultima alteração feita.
outra opção , a que eu particularmente prefiro é utilizar o modalresult:=mrok e testa-lo
mo formulario principal ..
assim
begin
form2:=tform2.create(nil);
try
if form2.showmodal = mrok then
////coloque aqui as instruçôes
finally
form2.free;
form2:=nil;
end;
GOSTEI 0