Form que chamou..

Delphi

24/05/2005

Boas..

galera, eu to com um probleminha..

se tenho 2 forms por exemplo, form1 e form2..

se o form1 chamou o form2, como eu faco pra saber pelo form2 que quem o chamou foi o form1?

Sendo que eu criei o form2 e chamei o form2..
application.createform(tform2,form2);form2.showmodal;

O sender eu ja vi que nao funciona nesse caso e nao sei como resolver isso..

agradeço desde já..

Eider.


Saint

Saint

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

24/05/2005

Vc poderia criar uma variável na seção Public do seu form que receberia o nome do form que o abrisse.


GOSTEI 0
Marco Salles

Marco Salles

24/05/2005

Vc poderia criar uma variável na seção Public do seu form que receberia o nome do form que o abrisse.


:arrow: to com voce.. :wink: foi o que eu pensei


GOSTEI 0
Andremuller

Andremuller

24/05/2005

As outras dicas são igualmente válidas.
Aí vai outra

Crie o Form2 da seguinte forma

  Form2 := TForm2.Create(Self);
  Form2.ShowModal;


Depois para acessar quem criou o form você pode acessar em Form2 propriedades como

Self.Owner.ClassName


ps.: opinião minha, nunca use Application.CreateForm, é um veneno, se você quer passar Application como owner então execute Form := TForm.Create(Application).
Digo isso porque depois se é necessário modificar o construtor da classe passando algum atributo imprescindível pro seu funcionamento, nos pontos que você utilizou Application.CreateForm vai compilar mas o funcionamento da classe vai estar comprometido.
Abaixo ao Application.CreateForm. Aqui eu estou formulando um documento com boas práticas de programação, esse é um dos primeiros itens.


GOSTEI 0
Saint

Saint

24/05/2005

Boas, agradeco as dicas..

eu pensei em usar uma variavel tambem mas nao quis trabalhar desta forma..

quanto ao application.createform eu sempre o preferi, mas o que voce falou eh verdade mesmo..

agradeco as dicas..

abraço


GOSTEI 0
POSTAR