Pergunta

Jogando com novo módulo RTTI, eu não poderia encontrar uma maneira de definir um manipulador de eventos com os novos utilitários. Tentar algo como isto:

LProp := TRttiContext.Create.GetType(Form1.ClassInfo).AsInstance.GetProperty('OnClick');
LProp.SetValue(Form1, {a TValue!}); 

SetValue precisa de um TValue passou, mas eu ainda tenho que encontrar uma maneira de representar uma TMethod através de um TValue. Quaisquer comentários?

ps. E uma pergunta lado .. Parece prefixo variáveis ??RTTI com "L" é uma convenção (e um bom IMO, voltas código meta em um verdadeiro quebra-cabeças rápido). Mas o que isso realmente significa?

Foi útil?

Solução

Você pode fazer TValue conter um valor de um tipo de aribtrary com o De método. Tente algo parecido com isto:

lValue := TValue.From<TNotifyEvent>(eventHandler);

BTW acho que o L significa apenas um L variável ocal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top