Fórum Executar um codigo ao fechar form exibido com o show #364572
02/10/2008
0
Pessoal,
todos os forms do meu programa eu exibo usando o showmodal, e o showmodal aguarda o fechamento do form para a execução dos código na sequencia. exemplo:
beleza, nesse codigo acima ele so mostra a mensagem quando o form for fechado.
O que eu quero é ter esse mesmo procedimento, mas usando apenas o show, pois estou criando uma aplicação MDI.
Eu poderia colocar este codigo pra ser chamado diretamente do form child que estou criando, mas não quero fazer referencia ao form principal dentro do form child, pois ele é usado em mais de uma aplicação.
Como posso controlar isso diretamente do form principal?
Obrigado.
todos os forms do meu programa eu exibo usando o showmodal, e o showmodal aguarda o fechamento do form para a execução dos código na sequencia. exemplo:
form1 := Tform1.create(nil); form1.showmodal; showmessage(´form fechado´);
beleza, nesse codigo acima ele so mostra a mensagem quando o form for fechado.
O que eu quero é ter esse mesmo procedimento, mas usando apenas o show, pois estou criando uma aplicação MDI.
Eu poderia colocar este codigo pra ser chamado diretamente do form child que estou criando, mas não quero fazer referencia ao form principal dentro do form child, pois ele é usado em mais de uma aplicação.
Como posso controlar isso diretamente do form principal?
Obrigado.
Prgdelphi
Curtir tópico
+ 0
Responder
Posts
08/10/2008
Marcosrocha
no Form PAI você deverá criar uma procedure do tipo close.
E no evento que cria esse form FILHO.
TFormPai = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure ChildFormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormPai: TFormPai;
implementation
{$R *.dfm}
procedure ChildFormClose(Sender: TObject; var Action: TCloseAction);
begin
MessageDlg(´O Child foi FECHADO!´, mtInformation, [mbOK], 0);
Action := caFree;
end;E no evento que cria esse form FILHO.
procedure TFormPai.BitBtn1Click(Sender: TObject); begin Application.CreateForm(TFormChild, FormChild); FormChild.OnClose := ChildFormClose; FormChild.Show; end;
Responder
Gostei + 0
08/10/2008
Prgdelphi
Marcos, obrigado pela solução... realmente, não tinha pensado dessa maneira. Deu certinho aqui...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)