Pergunta básica

Delphi

23/09/2005

:oops: :oops:

Galera, eu gostaria de saber qual é a melhor forma de chamar e destruir um form e liberar memória um form.
Eu uso o seguinte código para chamar:

        If Form = Nil then
        Application.CreateForm(TForm,Form);
        Form.ShowModal;


para destruir

        Action := caFree;
        Form := Nil;


Gostaria de perguntar também o seguinte:

Vamos dizer q criei, alterei ou exclui um registro, esse registro fica no buffer (se eu estiver errado por favor me digam), como faço para q o buffer seja liberado rapidamente após o procedimento.

:oops: :oops:


Demetrius

Demetrius

Curtidas 0

Respostas

Mahdak

Mahdak

23/09/2005

demetrius, eu uso o seguinte código:

criar:
if form1 = nil then
form1 := Tform1.Create ( Application );
form1.Show; { ou Form1.ShowModal; }


destruir:
form1 := nil;
form1 := caFree;


há quem diga que isso está errado, porem nunca tive problemas aqui...
Abraços...


GOSTEI 0
Michael

Michael

23/09/2005

Form1 := caFree
:?: ;-)

Demetrius, dê uma olhada neste excelente artigo do site [url=http://delphi.about.com]About Delphi[/url]:

http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm

Eu o chamo de ´[b:db39df4567]The Ultimate Guide[/b:db39df4567]´. ;-)

[]´s


GOSTEI 0
Mahdak

Mahdak

23/09/2005

[quote:531ec575c5=´mahdak´]Form1 := caFree
:?: ;-)

Demetrius, dê uma olhada neste excelente artigo do site [url=http://delphi.about.com]About Delphi[/url]:

http://delphi.about.com/od/adptips2005/qt/nilselfapp.htm

Eu o chamo de ´[b:531ec575c5]The Ultimate Guide[/b:531ec575c5]´. ;-)

[]´s[/quote:531ec575c5]

ehehehehe
descurpa a inguiorança Michael

Action   := caFree;

Abraços...


GOSTEI 0
Demetrius

Demetrius

23/09/2005

Utilizei o cógigo como no site, mas sou meio lerdo, acho q fiz alguma coisa errada por que deu erro, por favor deem uma olhada.

coloquei o código em um botao para chamar outro form.

var
   myForm : TFCadProdutoFracionado;
begin
   myForm := TFCadProdutoFracionado.Create(nil);
   try
     FCadProdutoFracionado.ShowModal;
   finally
     FCadProdutoFracionado.Free;
   end;
end;



GOSTEI 0
Rjun

Rjun

23/09/2005

Você criou myForm mas esta tentando exibir FCadProdutoFracionado.


GOSTEI 0
Michael

Michael

23/09/2005

Que erro?

Lembre-se de remover o formulário da lista de forms auto criados pelo Delphi ([b:164feb0baa]Project->Options[/b:164feb0baa]).

[]´s


GOSTEI 0
Demetrius

Demetrius

23/09/2005

Bati com a cabeça na parede, agora funcionou.

var
  FCadProdutoFracionado : TFCadProdutoFracionado;
begin
   FCadProdutoFracionado := TFCadProdutoFracionado.Create(nil) ;
   try
     FCadProdutoFracionado.ShowModal;
   finally
     FCadProdutoFracionado.Free;
   end;
end;



GOSTEI 0
POSTAR