Frage

Das Spiel mit dem neuen RTTI-Modul, kann ich nicht einen Weg finden, einen Event-Handler mit den neuen Werkzeugen zu setzen. Der Versuch, so etwas wie folgt aus:

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

SetValue braucht eine TValue vergangen, aber ich habe noch einen Weg zu finden, einen TMethod über einen TValue darzustellen. Fragen oder Anregungen?

ps. Und eine Seite Frage .. Es scheint, RTTI prefixing Variablen mit „L“ ist eine Konvention (und ein gutes IMO, schaltet sich Meta-Code in ein Puzzle ganz schnell). Aber was bedeutet es eigentlich für stehen?

War es hilfreich?

Lösung

Sie können machen TValue einen Wert eines aribtrary Typ mit der Ab-Methode enthalten. Probieren Sie etwas wie folgt aus:

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

BTW ich glaube, die L bedeutet nur eine L Ocal Variable.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top