Fórum Diferenças no modo de criar form #327297

11/08/2006

0

Application.CreateForm(TForm1, Form1)

esta é a forma padão através do qual o delphi cria seus forms automaticamente.

porém durante o digitação de código, o modo mais utilizado para instanciar um objeto é
  Form1 := TForm1.Create(Form1)


existe alguma diferença estre as duas metodologias?



a principal razão da minha pergunta é se posso fazer o seguinte:
quero tornar um form dependente de um outro no sentido de que quando um for fechado o outro também o seja automaticamente.
então minha sugestão é utilizar o seguinte código:
  Form2 := TForm1.Create(Form1)


posso fazer desta forma sem problemas?


Raserafim

Raserafim

Responder

Posts

11/08/2006

Marco Salles

porém durante o digitação de código, o modo mais utilizado para instanciar um objeto é Código: Form1 := TForm1.Create(Form1)


descuple mas esta forma não esta correta
Form1 := TForm1.Create(form1)


Pelo menos esta muito estranha....

Veja : voce esta fazendo com que o proprietário da instancia seje ele mesmo... Quer dizer : O proprietário de form1 é o próprio form1
Em outra palavras é como se o pai fosse o próprio Filho , ou se o filho fosse o próprio pai

[b:ed0a055940]Para ver na prática um erro , execute a rotina abaixo algumas vezes[/b:ed0a055940]

procedure TForm1.Button3Click(Sender: TObject);
begin
try
form2:=Tform2.Create(form2);
Form2.ShowModal;
finally
Form2.Release;
end;


a principal razão da minha pergunta é se posso fazer o seguinte: quero tornar um form dependente de um outro no sentido de que quando um for fechado o outro também o seja automaticamente. então minha sugestão é utilizar o seguinte código: Código: Form2 := TForm1.Create(Form1) posso fazer desta forma sem problemas?


Nesse sentido o proprietário do form2 é o form1.. Desse modo qndo form1 for destruido <destruir é diferente de fechar> o Form2 automaticamente o será
Porem o mesmo não se aplica ao form2.. Para tal , no evento onclose do form2 voce deve fechar o form1 na mão , isto é Form1.OnClose

Não esquecer de colocar no evento Onclose do Form1 Action:=Cafree;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar