Come impostare i gestori di eventi via nuova RTTI? [D2010]
-
18-09-2019 - |
Domanda
Giocando con il nuovo modulo di RTTI, non riuscivo a trovare un modo per impostare un gestore di eventi con le nuove utilità. Cercando qualcosa di simile:
LProp := TRttiContext.Create.GetType(Form1.ClassInfo).AsInstance.GetProperty('OnClick');
LProp.SetValue(Form1, {a TValue!});
ImpostaValore ha bisogno di un TValue passato ma ho ancora trovare un modo per rappresentare un TMethod tramite un TValue. Eventuali commenti?
ps. E una domanda lato .. Sembra prefisso variabili RTTI con "L" è una convenzione (e una buona IMO, meta codice si trasforma in un puzzle reale veloce). Ma che cosa realmente rappresenta?
Soluzione
È possibile effettuare TValue contiene un valore di un tipo aribtrary con il Dal metodo. Provare qualcosa di simile:
lValue := TValue.From<TNotifyEvent>(eventHandler);
A proposito penso che la L significa solo un L variabile ocal.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow