2009/5/28 Edelson Regis de Lima <edre...@ig.com.br>: > Olá pessoal. > > Não sei se é possível, mas vamos lá... > > Tenho uma classe principal: TMinhaClasse, que tem algumas propertys básicas. > Eu crio outra classe TMinhaClasseHerdada = class(TMinhaClasse) e acrescento > mais algumas propertys... > > Implementei uma função usando RTTI que lê qualquer tipo de objeto herdado de > TMinhaClasse e mostra suas propriedades e respectivos valores. > Só que estou tendo problema quando a property é do tipo TMemoryStream, pois > utilizo a function GetPropValue, que me retorna uma Variant, e os dados > contidos nessa property, que seria um monte de binários, me retorna alguns > números apenas. > Será que tem outro jeito de fazer isso? > > Alguem sabe como ler uma propriedade genericamente, sem saber previamente > qual o seu tipo, e se for do tipo TMemoryStream ou TStream, que retorne o > seu conteúdo corretamente?
Para ver o tipo da propriedade: ==== var VPropInfo: PPropInfo; begin VPropInfo := GetPropInfo(Owner, Metadata.Name); if Assigned(VPropInfo) then VPropInfo^.PropType^.Kind // <- aqui está o tipo da propriedade ==== Para ler um objeto use GetObjectProp. Joao Morais