Quando vc faz Self.Create, vc está criando uma nova instância e atribuindo para 
o Self, dando um efeito de reinicialização da mesma, e ainda acarretando um 
provável memory leak. A título de sugestão, experimentou chamar 
Self.ClassType.Create ao invés de Self.Create?

Sds.


________________________________

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 3 Jun 2008 10:56:05 -0300
Subject: Re: [delphi-br] Reflection


Opa...

Já avancei bastante na solução que eu precisava com o PPropInfo, porém, me 
deparei com um problema de herança ao criar uma classe ancestral para retornar 
o conteúdo do filtro de uma collection.

O que acontece é que eu gostaria de criar uma nova instância do meu "self", 
porém, fazendo Self.Create simplesmente perco a instância atual.

Com o ClassInfo, consigo as informações da classe, mas não consegui instanciar 
um novo objeto a partir delas.

Alguém sabe como proceder?!

Joao Morais <[EMAIL PROTECTED]> escreveu:
Valfrid-Ly Silva Couto wrote:
> Amigos,
>
> Estou trabalhando com Delphi 7 e estou tentado criar um filtro num 
> descendente de TCollection.
>
> Como eu gostaria que esse filtro fosse genérico, tenho que usar Reflection 
> para saber qual a propriedade passada, apenas usando o nome.
>
> Achei, mesmo no histórico da lista, como fazer o reflection de métodos, 
> usando o TMethod, mas não achei nada de propriedades.
>
> Alguém sabe como fazer isso?!

Trata-se de rtti, através desta sigla as suas pesquisas deverão trazer
mais resultados.

Há diversos métodos, depende do tipo de propriedade que você está
usando. Veja, por exemplo, GetStrProp, unit TypInfo, que pega o valor de
uma propriedade string. Nesta mesma unit tem a declaração de outras
procedures e functions para outros tipos de dados.

Joao Morais

------------------------------------

--

_________________________________________________________________
Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
http://www.amigosdomessenger.com.br/

Responder a