Ir para o conteúdo
Kline777

RTTI

Mensagens Recomendadas

Kline777

Boas,

Alguem sabe se e como é possivel ir buscar o valor de uma VARIAVEL de um form ou unit só com o nome do campo que queremos numa variavel string?

Cenário: A func1 recebia uma string com 'NomeCampo1;NomeCampo2',

lá dentro ia buscar os valores das Variaveis NomeCampo1 e NomeCampo2

Andei a ver coisas da RTTI para pelo que percebi só dá para usar em objectos instanciados. E eu preciso mais para variaveis globais e/ou records

OBrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Kline777

Esqueçam... já encontrei o que queria.

Já agora para quem precisar...

Não dá para ler variaveis com o RTTI mas dá propriedades de objectos com mta facilidade.

Eu queria ler variaveis que estavam num record, mas vou passar tudo para uma class(TObject).

Type ClassVars=class(TObject)
var1:integer;
var2:integer;
var3:integer;
   published property V1:integer read var1 write var1;
   published property V2:integer read var2 write var2;
   published property V3:integer read var3 write var3;
End;

Depois é so usar o GetEnumProp(ClassVars,'Var1') para ir buscar os seus valores facilmente.

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado

Só agora vi isto, mas ainda bem que entretanto encontraste a resposta, porque eu não sabia! :D

Nunca usei o RTTI.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.