Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: RTTI records & SetValue

  Alt 6. Sep 2011, 16:13
Auf Variant sollte man imo an dieser Stelle verzichten und mit TValue und/oder generics (unter Zuhilfenahme von type inference) arbeiten.

Beispiel:

Delphi-Quellcode:
procedure TLinq<T>.SetProperty<TValueType>(Item: Pointer; const PropertyName: string; Value: TValueType);
var
  v: TValue;
begin
  v := TValue.From<TValueType>(Value);
...
end;

...

myLinq.SetProperty<Integer>(myObject, 'MyIntProp', 42);

// oder mit type inference (das heißt der Compiler schnallt, von welchem Typ TValueType wirklich ist - Achtung: das funzt nicht immer 100%ig)

myLinq.SetProperty(myObject, 'MyIntProp', 42); // <- kein <Integer> nötig.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat