Fórum Ref TObject #243504

17/07/2004

0

Caros colegas, vcs poderiam me esclarecer uma dúvida?
Por exemplo:
var L:TList; i,j:Integer;
begin
L := TList.Create;
i := Integer(L);
j := Integer(@L);
end;

Agora vem a dúvida:
Qual a diferença entre i e j ? :shock: :?:

Antecipados agradecimentos !!!


Persist

Persist

Responder

Posts

17/07/2004

Beppe

Um valor TObject ou descendente é apenas um ponteiro para o conteúdo do objeto. O operador @ pega o endereço de uma variável ou campo, então I é uma referência simples, e J é uma referência dupla. Se vc derefenciar J uma vez, vc terá o conteúdo de L, mais uma vez para ter o conteúdo do objeto. O Delphi já faz o dereferenciamento automático para valores TObject, então fica transparente ao user.


Responder

Gostei + 0

19/07/2004

Persist

Olá Beppe, obrigado pela resposta.
Na verdade utilizo uma classe de conexão num programa servidor, onde ela precisa retornar às aplicações cliente um ´Handle´ de um objeto TDataset, então o que faço: retorno Integer(TQuery) por exemplo.
Não preciso retornar um ponteiro p/ TQuery pq as aplicações cliente não utilizam componentes sql.
Minha dúvida era se esse ´Handle´ de TQuery nunca iria se repetir para cada Query criada.


Responder

Gostei + 0

19/07/2004

Beppe

Pra cada Query criada, Integer(Q) retorna um ´inteiro´ diferente.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar