quot;Nilquot;

03/01/2006

Fala ae camaradas :lol: !!!

Estou como uma pequena dúvida...

if Edt <> [b:cc027d0858]Nil[/b:cc027d0858] then begin

O que o componente NIL faz :?:

Valew...Grato :!:


Rafaeldf22

Respostas

03/01/2006

Edilcimar

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


Responder Citar

03/01/2006

Josh_bsb

´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.


Responder Citar

03/01/2006

Michael

[b:e89f13daf6]Nil [/b:e89f13daf6]e [b:e89f13daf6]Null [/b:e89f13daf6]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 [b:e89f13daf6]TObject [/b:e89f13daf6]- 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 [b:e89f13daf6]Variant [/b:e89f13daf6]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 [b:e89f13daf6]Unassigned[/b:e89f13daf6].

Quando se compara objetos, usa-se preferencialmente a função [b:e89f13daf6]Assigned[/b:e89f13daf6]. No exemplo usado:

if Assigned(Edt) then...

ou
if not Assigned(Edt) then...


[]´s


Responder Citar

03/01/2006

Edilcimar

é 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


Responder Citar

03/01/2006

Michael

Sim, pq a propriedade [b:f93c3c2908]Value [/b:f93c3c2908]de [b:f93c3c2908]TField [/b:f93c3c2908]é do tipo [b:f93c3c2908]Variant[/b:f93c3c2908], e Variant não é um objeto. ;-)

[]´s


Responder Citar

03/01/2006

Edilcimar

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


Responder Citar

03/01/2006

Michael

Entendi o q vc quis dizer, apenas achei q a [b:b4962091ff]forma [/b:b4962091ff]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


Responder Citar

03/01/2006

Edilcimar

Ok


Responder Citar

03/01/2006

Edilcimar

Ok


Responder Citar