Du übergibst das Feld, übergebe den Wert.
Das habe ich auch schon versucht allerdings scheitere ich bereits beim Erstellen des Objekts
Code:
var
rttiContext: TRttiContext;
rttiType: TRttiType;
attribute: TCustomAttribute;
rttiField: TRttiField;
begin
myQuery.Close;
myQuery.SQL.Clear;
myQuery.SQL.Add('SELECT * FROM Wert');
myQuery.SQL.Add('WHERE ID=' + IntToStr(FID));
myQuery.Open();
try
rttiContext := TRttiContext.Create;
try
rttiType := rttiContext.GetType(TWert);
for rttiField in rttiType.GetFields do
begin
if rttiField.FieldType.ToString = 'TFloatField' then
begin
// Instanz erstellen wenn noch nicht vorhanden
if not assigned(TFloatField(rttiType.GetField(rttiField.Name))) then
TFloatField(rttiType.GetField(rttiField.Name)).Create(nil);
// Wert zuweisen
TFloatField(rttiType.GetField(rttiField.Name)).AsFloat := tmpQuery.FieldByName(rttiField.Name).AsFloat;
end;
end;
finally
rttiContext.Free;
end
finally
myQuery.Close;
end;
end;
Ja so was ähnliches habe ich vor