Jump to content
Alfonso CV

Aceder ao Form pai.

Recommended Posts

Alfonso CV

Caros bom dia.

Preciso saber como consigo aceder aos métodos e propriedades dum Form pai desde o Form filho, por exemplo: Tenho um formulário principal e desde ele chamo a outro formulário modal, estando neste Form filho preciso actualizar propriedades e executar métodos do Form principal.

Alguma dica por favor...

Cumprimentos,

   Alfonso

Share this post


Link to post
Share on other sites
nunopicado

Boa noite Afonso

Tens várias formas.

Uma é criares um método no form pai que chame a form modal, e antes do free, vá lá buscar a info que for precisa para actualizar a form pai.
Esta forma evita que haja referencia circular, com duas units a chamarem-se uma à outra, que é sempre de evitar.

Exemplo:

procedure TfFormPai.AbreJanela(Sender: TObject);
begin
   fFormFilha := TfFormFilha.Create(Self);
   fFormFilha.Parent := Self;
   if fFormFilha.ShowModal = mrOK
      then fFormPai.Edit1.Text := fFormFilha.EditXPTO.Text;  // O TEdit da form pai vai buscar valor ao TEdit da form filha        
   fFormFilha.Free;      
end;

Podes fazer também a referencia circular, metendo o nome da unit da form pai na cláusula uses da secção implementation da form filha:

unit uFormFilha;

interface 

uses
	blablabla, xpto, pardaisaoninho;
 
implementation

uses           // Cria aqui uma cláusula uses, e chama a unit da form pai
   uFormPai;

procedure TfFormFilha.Button1(Sender: TObject);
begin
   fFormPai.Edit1.Text := fFormFilha.EditXPTO.Text;  // O TEdit da form pai vai buscar valor ao TEdit da form filha           
end;

Não recomendo de todo este último método. A promiscuidade entre classes far-se-á pagar no futuro quando precisares fazer testes e/ou descobrir de onde vem um erro qualquer.

Há outras formulas, mais ou menos complexas, mas estas duas representam as duas principais formas de o fazer.

  • Vote 1

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.