То, что вы пытаетесь сделать, невозможно.Вы не можете передать тип метакласса, определенный во время выполнения, оператору as
.
Для того, что вы пытаетесь сделать, вам придется прибегнуть к использованию RTTI старого стиля через TypInfo
, в данном случае это функция TypInfo.GetStrProp()
, например:
uses
..., TypInfo;
FormTestMemo.Text := GetStrProp(VonKomponente, 'Text');
Обратите внимание, что не все текстовые компоненты имеют свойство Text
, некоторые имеют Caption
свойство, например:
uses
..., TypInfo;
var
prop: PPropInfo;
prop := GetPropInfo(VonKomponente, 'Text');
if prop = nil then
prop := GetPropInfo(VonKomponente, 'Caption');
if prop <> nil then
FormTestMemo.Text := GetStrProp(VonKomponente, prop)
else
FormTestMemo.Text := '';