Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
8. Apr 2019
Man kann es aber auch so machen, obwohl ich stark bezweifle, ob das wirklich sinnvoll ist:
try
if Odd(Random(2)) then
raise TButton.Create(nil)
else
raise TEdit.Create(nil);
except
on instance: TButton do
instance.Click;
Forum: Object-Pascal / Delphi-Language
by Uwe Raabe,
7. Apr 2019
Vielleicht kommt TValue.TryAsType<T> dem noch am nächsten. Allerdings braucht man dann für jeden Fall eine entsprechend deklarierte Variable. Das ließe sich aber vielleicht wieder über Inline-Variablen lösen. Bleibt aber immer noch ziemlich unelegant:
var V: TValue := TValue.From<TComponent>(FindComponent('MyName'));
var btn: TButton;
if V.TryAsType<TButton>(btn) then begin
...