Qual é a melhor forma de criar e destruír um Form?
Ola Pessoal
Estava pesquisando sobre o assunto e achei duas formas de Criar um form:
1) Application.CreateForm(TForm1, Form1);
2) form1 := Tform1.Create(Self);
Qual destas meneiras é a mais eficiente?
Outra dúvida:
Ao criar um form, primeiro eu preciso saber se ele já não foi criado. como eu faço isso?
E mais uma, qual a melhor forma de Destruír o Form?
Eu achei algumas:
1)Form1.close; {Essa acho que não destrói}
2)Form1.Free;
3)Form1.Release;
Valew pessoal
Estava pesquisando sobre o assunto e achei duas formas de Criar um form:
1) Application.CreateForm(TForm1, Form1);
2) form1 := Tform1.Create(Self);
Qual destas meneiras é a mais eficiente?
Outra dúvida:
Ao criar um form, primeiro eu preciso saber se ele já não foi criado. como eu faço isso?
E mais uma, qual a melhor forma de Destruír o Form?
Eu achei algumas:
1)Form1.close; {Essa acho que não destrói}
2)Form1.Free;
3)Form1.Release;
Valew pessoal
Seu_madruga
Curtidas 0
Respostas
Ksmarini
10/08/2005
Amigo, existem várias formas de fazer a mesma coisa, eu por exemplo não uso nem uma das formas que vc usa, depois de muito pesquisar a forma que eu achei mais adquada pra trabalhar foi assim:
para verificar e criar o form eu faço assim:
[i:8fe3a6936c]//Verifica se o form está criado na memória[/i:8fe3a6936c]
if NomedoForm = nil then
[i:8fe3a6936c]//Se não estiver criado o sistema vai criar e se estiver
//criado o sistema exibe o Form em questão[/i:8fe3a6936c]
NomedoForm := TNomedoForm.Create(Application);
NomedoForm.ShowModal;
Para destruir o Form eu vou no evento onClose do form e coloco o seguinte código:
Action := caFree;
NomedoForm := nil;
se eu fosse exibir um msg pra perguntar se quero ou não fechar o form em questão ficaria assim:
if Application.MessageBox(´Deseja encerrar o programa?´, ´Fechar´, 36) = idyes then
begin
Action := caFree;
NomedoForm := nil;
end
else
Action := caNone;
Este código tb fica no evento onClose.
Espero ter ajudado, qq coisa posta aí ;-)
para verificar e criar o form eu faço assim:
[i:8fe3a6936c]//Verifica se o form está criado na memória[/i:8fe3a6936c]
if NomedoForm = nil then
[i:8fe3a6936c]//Se não estiver criado o sistema vai criar e se estiver
//criado o sistema exibe o Form em questão[/i:8fe3a6936c]
NomedoForm := TNomedoForm.Create(Application);
NomedoForm.ShowModal;
Para destruir o Form eu vou no evento onClose do form e coloco o seguinte código:
Action := caFree;
NomedoForm := nil;
se eu fosse exibir um msg pra perguntar se quero ou não fechar o form em questão ficaria assim:
if Application.MessageBox(´Deseja encerrar o programa?´, ´Fechar´, 36) = idyes then
begin
Action := caFree;
NomedoForm := nil;
end
else
Action := caNone;
Este código tb fica no evento onClose.
Espero ter ajudado, qq coisa posta aí ;-)
GOSTEI 0
Michael
10/08/2005
Olá colega!
Veja este guia definitivo sobre criação de formulários no Delphi:
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm
[]´s
Veja este guia definitivo sobre criação de formulários no Delphi:
http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm
[]´s
GOSTEI 0
Ksmarini
10/08/2005
Caro Michel, gostei de ver que vc tb pesquisa muito, aliás gostei do site, pena que o mesmo está em inglês, reduzindo o aproveitamento pra um número generoso de usuários, mas trocando em miúdos no site diz praticamente a mesma coisa que eu disse, a única diferença é que eles usam dois métodos: um pra formulários modal e outro pra formulários não modal e o método que utilizo pode ser usado tanto pra um quanto pra outro.
de qualquer forma valews pelo interesse em ajudar ao próximo. :wink:
de qualquer forma valews pelo interesse em ajudar ao próximo. :wink:
GOSTEI 0
Michael
10/08/2005
Olá colega! Como vai?
Primeiramente, gostaria de dizer que meu nome é [b:74156346e9]Michael[/b:74156346e9], e não Michel. ;-)
Bom, saber um pouco de inglês é essencial para qualquer profissional de informática, não apenas programadores. E não é preciso falar fluentemente, basta ter um inglês técnico.
Quanto ao artigo, eu acho q ele não falou exatamente a mesma coisa vc. No seu exemplo, vc criou o form setando seu [b:74156346e9]Owner[/b:74156346e9] para [b:74156346e9]Application[/b:74156346e9], o que faz com q ele fique na memória até a aplicação ser finalizada. O correto em formulários modais é setar o proprietário para [b:74156346e9]nil [/b:74156346e9]e liberar da memória vc mesmo. Embora a primeria opção funcione para os dois casos, ela não é a mais adequada em termos de gerenciamento de memória para forms modais.
Se alguém não compreendeu o artigo pelo fato de ele não estar em português, poste aqui e eu vejo se arrumo um tempo de traduzí-lo. ;-)
[]´s
Primeiramente, gostaria de dizer que meu nome é [b:74156346e9]Michael[/b:74156346e9], e não Michel. ;-)
Bom, saber um pouco de inglês é essencial para qualquer profissional de informática, não apenas programadores. E não é preciso falar fluentemente, basta ter um inglês técnico.
Quanto ao artigo, eu acho q ele não falou exatamente a mesma coisa vc. No seu exemplo, vc criou o form setando seu [b:74156346e9]Owner[/b:74156346e9] para [b:74156346e9]Application[/b:74156346e9], o que faz com q ele fique na memória até a aplicação ser finalizada. O correto em formulários modais é setar o proprietário para [b:74156346e9]nil [/b:74156346e9]e liberar da memória vc mesmo. Embora a primeria opção funcione para os dois casos, ela não é a mais adequada em termos de gerenciamento de memória para forms modais.
Se alguém não compreendeu o artigo pelo fato de ele não estar em português, poste aqui e eu vejo se arrumo um tempo de traduzí-lo. ;-)
[]´s
GOSTEI 0
Marco Salles
10/08/2005
Se alguém não compreendeu o artigo pelo fato de ele não estar em português, poste aqui e eu vejo se arrumo um tempo de traduzí-lo
Mamae pagou um curso para mim , mas na época eu so queria era Farra..
Sei que nunca é tarde , mas to adiando esse curso... Fazer o que :?:
GOSTEI 0
Mahdak
10/08/2005
[quote:5b4f211da7=´Marco Salles´]
Mamae pagou um curso para mim , mas na época eu so queria era Farra..
Sei que nunca é tarde , mas to adiando esse curso... Fazer o que :?:[/quote:5b4f211da7]
hahahahahahahahahah.... essa foi boa!!!
Se alguém não compreendeu o artigo pelo fato de ele não estar em português, poste aqui e eu vejo se arrumo um tempo de traduzí-lo
Mamae pagou um curso para mim , mas na época eu so queria era Farra..
Sei que nunca é tarde , mas to adiando esse curso... Fazer o que :?:[/quote:5b4f211da7]
hahahahahahahahahah.... essa foi boa!!!
GOSTEI 0