Executar um codigo ao fechar form exibido com o show
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
Curtidas 0
Respostas
Marcosrocha
02/10/2008
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;
GOSTEI 0
Prgdelphi
02/10/2008
Marcos, obrigado pela solução... realmente, não tinha pensado dessa maneira. Deu certinho aqui...
GOSTEI 0