重现步骤:
-新的firemonkey应用程序
- 将 TCheckBox 添加到表单中
现在使用以下代码创建一个方法:
procedure TForm1.Foo;
var a,b:Integer; lVal:TValue;
begin
lVal:=TValue.From<Integer>(42);
a:=lVal.AsInteger;
checkbox1.Data:=TValue.From<Integer>(42);
b:=checkbox1.Data.AsInteger;
end;
使用 lVal 的演员可以毫无问题地运行,但是 checkbox1.data 即使它也是一个 TValue,也会在调用AsInteger
. 改为使用时会出现相同的错误checkbox1.data.AsType<Integer>
。
我TCheckBox.Data
在这里滥用还是这是某种错误?