Fórum Evento - onclose....Dúvidas..... #233889
23/05/2004
0
* Fiz um cadastro de contas a pagar que começa com um form onde tem as informações sobre as contas...tipo parcelas juros decontos e etc...
* Neste mesmo Form tenho um botão q me dá acesso ao cadastro de contas a pagar...neste momento é gerado um novo form onde tenho as mesmas tabelas do form anterior que são ativadas, faço todo o prescesso de cadastro, e para atualizar a tabela o primeiro form, no evento on close do segundo formulário é colocado um Form1.Table1.close e seguido de umForm1.Table.open....fazendo isto os dados inseridos no segundo formulário são atualizados no primeiro....
* Agora presciso chamar este segundo form de outro ponto do programa, más quando peço para sair esté dá um PAUUUUU, proveniente do evento on close... ( o primeiro form neste momento não está criado...)..
* Pensei ...será que existe uma condição...do tipo, se form1 estiver presente executa as funções da tabela, caso contrário ignora....
Isso é meio complicado...
se alguém quiser dá uma mãosinha eu agradeço.... até mais...
Gilmar C. Moraes
Gigatel
Curtir tópico
+ 0Posts
23/05/2004
Adilsond
Gostei + 0
23/05/2004
Gigatel
Analiza....na primeira condição...o primeiro form já estará aberto...como faria para atualizar sem ter que adicionar um botão....
Gostei + 0
23/05/2004
Adilsond
begin
Form1.Table.Refresh;
end;
Mas para que o ´if Form1 <> nil´ funcione, no evento onClose do Form1 coloque: ´Form1 := nil;´.
Gostei + 0
23/05/2004
Gigatel
Como faço para inserir o seu codigo, sem interferir neste estrututa...
procedure T_FormContas.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
_FormCRReceb.Table1.Close;
_FormCRReceb.Table1.Open;
_FormCRReceb.Table2.Close;
_FormCRReceb.Table2.Open;
_FormCRReceb.Table3.Close;
_FormCRReceb.Table3.Open;
_FormCRReceb.Table4.Close;
_FormCRReceb.Table4.Open;
if Table2.State in [dsInsert, dsEdit] then
begin
if Application.MessageBox(´Gravar alterações ?´, ´Registro alterado.´, MB_ICONQUESTION
+ MB_YESNO) = IDYES then
Table2.Refresh
else
Table2.Cancel;
end;
Action := cafree;
end;
Gostei + 0
24/05/2004
Adilsond
procedure T_FormContas.FormClose(Sender: TObject; var Action: TCloseAction); begin if Table2.State in [dsInsert, dsEdit] then begin if Application.MessageBox(´Gravar alterações ?´, ´Registro alterado.´, MB_ICONQUESTION + MB_YESNO) = IDYES then Table2.Post else Table2.Cancel; end; Table2.Close; // não se esqueça de fechar suas tabelas if _FormCRReceb <> nil then begin _FormCRReceb.Table1.Refresh; _FormCRReceb.Table2.Refresh; _FormCRReceb.Table3.Refresh; _FormCRReceb.Table4.Refresh; end; Action := cafree; _FormContas := nil; // Caso necessite verificar se o formulario existe end;
não se esqueça de colocar no evento onClose do _FormCRReceb:
begin Action := caFree; _FormCRReceb := nil; end;
Gostei + 0
25/05/2004
Gigatel
procedure T_FormContas.FormClose(Sender: TObject; var Action: TCloseAction); begin if Table2.State in [dsInsert, dsEdit] then begin if Application.MessageBox(´Gravar alterações ?´, ´Registro alterado.´, MB_ICONQUESTION + MB_YESNO) = IDYES then Table2.Post else Table2.Cancel; end; Table2.Close; // não se esqueça de fechar suas tabelas if _FormCRReceb <> nil then begin _FormCRReceb.Table1.Refresh; _FormCRReceb.Table2.Refresh; _FormCRReceb.Table3.Refresh; _FormCRReceb.Table4.Refresh; end; Action := cafree; _FormContas := nil; // Caso necessite verificar se o formulario existe end;
begin Action := caFree; _FormCRReceb := nil; end;
AdilsonD .... Gostaria de agradecer pela sua ajuda, e avisar que deu sertinho...e te dar parabéns pela forma explicida que vc explica, isso é bom... fiva aki meus agradecimentos...valeu....
Gilmar C. Moraes
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)