Das Erste kommt dem Nahe, was du eigentlich versuchen wolltest, also via Implicit-Operator, nur über eine "eigene" Variable.
Und das Letzte wäre ein explititer Cast, welchen ich eigentlich empfehlen würde.
Delphi-Quellcode:
// externer impliziter Cast über zusätzliche Variable
MyOmniValue := FTest; // MyOmniValue := TObject(FTest); so sähe die externe Variante des letzten Tipps aus (siehe nächsten Code-Block)
FBkGet.Schedule(FBkGet.CreateWorkItem(MyOmniValue));
// externe explizite Zuweisung über zusätzliche Variable
MyOmniValue.AsObject := FTest;
FBkGet.Schedule(FBkGet.CreateWorkItem(MyOmniValue));
// externer expliziter Cast über zusätzliche Variable
MyOmniValue := TOmniValue.CastFrom<TTest>(FTest);
FBkGet.Schedule(FBkGet.CreateWorkItem(MyOmniValue));
// interner expliziter Cast über automatisch generierte lokale Variable
FBkGet.Schedule(FBkGet.CreateWorkItem(TOmniValue.CastFrom<TTest>(FTest)));
Dein Rumgecaste sieht eher so bissl "sinnlos" aus.
TTest >= expliziter Cast über den TObject-Implicit-Operator => TOmniValue => aulesen über AsObject
=> TObject => automatischer impliziter Case über den selben Implicit-Operator => TOmniValue => TOmniValue => übergabe als Parameter
Wenn Letzteres geht, dann hätte ich es eher nochmal so versucht, damit der Compiler direkt mit dem TObject arbeitet und man die erste Zeile des vorhin genannten Casts auslässt:
FBkGet.Schedule(FBkGet.CreateWorkItem(TObject(FTest)));
[Edit]
Oh, es ist schon gefixt.
Nja, selbst wenn du es selber gemeldet hättest, dann wäre es bestimmt sowieso nicht als Hotfix/Update für ältere Delphis gekommen.
"Kaufen sie doch was Neues" ist einfach zu nett.