Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Alfonso CV

Aceder ao Form pai.

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

  • Voto 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.