Dúvidas do comando Nil

Delphi

28/09/2006

Olá pessoal,

Estou com uma dúvida sobre o comando Nil, já vi este comando usado várias vezes, mas não sei o que ele faz ao certo.

1. O que ele faz quando é usado no Evendo onClose.

FCadastro := Nil;

2. O que poderia ser feito com ele em outro lugar sem ser no onClose.



Obrigado,

Rodrigo.


Rodrigorpb

Rodrigorpb

Curtidas 0

Respostas

Rodrigorpb

Rodrigorpb

28/09/2006

Este também é um exemplo que peguei da net.

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


O que ele esta fazendo nesta linha:
myForm := TMyForm.Create(nil) ;


GOSTEI 0
Massuda

Massuda

28/09/2006

[b:a2bb47d777]Nil[/b:a2bb47d777] é uma constante que representa um ponteiro nulo (zero).


GOSTEI 0
Rodrigorpb

Rodrigorpb

28/09/2006

Poderia detalhar mais?

Obrigado,

Rodrigo.


GOSTEI 0
Massuda

Massuda

28/09/2006

Poderia detalhar mais?
Talvez eu não tenha entendido qual é sua dúvida, mas Nil indica não inicializado, zero, não existe, etc.

FCadastro := Nil;
FCadastro é não inicializado, zero, não existe, etc.

myForm := TMyForm.Create(nil)
O Owner do myForm é não inicializado, zero, não existe, etc.


GOSTEI 0
Steve_narancic

Steve_narancic

28/09/2006

O que ele esta fazendo nesta linha: myForm := TMyForm.Create(nil) ;


me corrijam se eu estiver enganado mas pelo que sei o se usarmos nil no create dizemos que o form não tem Aowner (proprietário) sendo assim, somos obrigados a liberar o form da memória quando não estivermos mais utilizando o mesmo, o que está sendo feito atraves de myForm.Free;


GOSTEI 0
Massuda

Massuda

28/09/2006

...se usarmos nil no create dizemos que o form não tem Aowner (proprietário) sendo assim, somos obrigados a liberar o form da memória quando não estivermos mais utilizando o mesmo...
Isso mesmo. No caso, nil significa ´não tem Owner´, ou seja, ninguém vai se resposabilizar por destruir o objeto.


GOSTEI 0
POSTAR