Array
(
)

quot;Nilquot;

Rafaeldf22
   - 03 jan 2006

Fala ae camaradas :lol: !!!

Estou como uma pequena dúvida...

if Edt <> Nil then begin

O que o componente NIL faz :?:

Valew...Grato :!:


Edilcimar
   - 03 jan 2006

alguns componentes usam o nil outro o null para informar que o seu conteúdo está vazio


Josh_bsb
   - 03 jan 2006

´Nil´ não é componente...
É apenas a atribuição de um valor ´NULO´ a uma referencia de objeto.

No código citado se refere a um teste condicional onde ele checa se Edt possui referencia valida, ou seja, foi instanciado.


Michael
   - 03 jan 2006

Nil e Null são coisas diferentes. Nil é um ponteiro para lugar nenhum da memória (um endereço que não existe). Null é uma variante com um tipo desconhecido ou com dados perdidos (lixo).

Todo objeto derivado de TObject - ou seja, todos eles - podem ser nil, mas nenhum pode ser Null. Apenas variantes aceitam este valor. Alías, Null não é um valor, e sim uma função que retorna um tipo Variant vazio. Vazio não é a palavra mais indicada, e sim, como já mencionado, um tipo desconhecido. Para obter variantes vazias usa-se a função Unassigned.

Quando se compara objetos, usa-se preferencialmente a função Assigned. No exemplo usado:

#Código

if Assigned(Edt) then...

ou#Código
if not Assigned(Edt) then...


[]´s


Edilcimar
   - 03 jan 2006

é michael, mas quando se compara a um campo de uma tabela a comparação é feita if fieldbyname(´nomedocampo´).value = [u:98f76617c6]null[/u:98f76617c6] then


Michael
   - 03 jan 2006

Sim, pq a propriedade Value de TField é do tipo Variant, e Variant não é um objeto. ;-)

[]´s


Edilcimar
   - 03 jan 2006

por isto a minha explicação anterior de ´vazio´, pois nula ela não é, zero tampouco!


Michael
   - 03 jan 2006

Entendi o q vc quis dizer, apenas achei q a forma com q vc explicou ficou um pouco confusa, pois pareceu q um componente pode ser nil e outros podem ser null, o que não é correto. Todos podem ser nil, e nenhum pode ser null. Toda Variant pode ser Null, e nenhuma pode ser Nil.

Não postei minha mensagem em resposta à sua. Apenas usei a deixa para falar da diferença entre Nil e Null. ;-)

[]´s


Edilcimar
   - 03 jan 2006

Ok


Edilcimar
   - 03 jan 2006

Ok