Olá pessoal, Se você usa ShowModal (O código do exemplo está no link: http://www.4shared.com/dir/5679510/48848609/Uploads.html procure o arquivo ModalForms): unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; resourcestring OpenModalFormErr = 'O formulário "%s" já esta carregado '+ 'na memória, caso o mesmo não seja visível reinicie o %s.'; var Form1: TForm1; implementation {$R *.dfm} uses Unit2; procedure ModalForms(var AForm: TForm; AFormClass: TFormClass; ACaption: TCaption); begin if AForm = nil then begin Screen.Cursor := crHourGlass; AForm := AFormClass.CreateParented( GetParent(Application.Handle)); try with AForm do begin Caption := ACaption; Position := poScreenCenter; ShowModal; end; finally AForm.Free; AForm := nil; Screen.Cursor := crDefault; end; end else MessageDlg(Format(OpenModalFormErr, [ACaption, Application.Title]), mtError, [mbOK], 0); end; procedure TForm1.Button1Click(Sender: TObject); begin ModalForms(TForm(Form2), TForm2, Form1.Button1.Caption); end; procedure TForm1.FormCreate(Sender: TObject); begin // ReportMemoryLeaksOnShutdown := True; end; end.
----- Mensagem original ---- De: Yoshio <[EMAIL PROTECTED]> Para: Delphi-BR <delphi-br@yahoogrupos.com.br> Enviadas: Quinta-feira, 28 de Agosto de 2008 12:20:19 Assunto: [delphi-br] Form := nil automático no OnClose Olá pessoal. Estava fazendo um form para ser herdado, porem não consegui fazer com que os forms descendentes se "auto-liberar" da memória. Para cada form descendente eu tenho que colocar este código no OnClose: ------------ --------- ------- Action := caFree; FormDescendente1 := nil; // ou FormDescendente2, FormDescendente3. .. ------------ --------- ------- É praticamente o mesmo código em todos os forms descendentes. Não há uma maneira de fazer isto automático, como algum código no OnClose do form herdado que faz isso automaticamente? Obrigado. Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]