gpt4 book ai didi

delphi - 用作TValue时TCheckBox.Data无效类型转换

转载 作者:行者123 更新时间:2023-12-03 18:31:17 27 4
gpt4 key购买 nike

重现步骤:

-新的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时引发“ EInvalidCast”-错误。改为使用 checkbox1.data.AsType<Integer>时,会出现相同的错误。

我在这里误用 TCheckBox.Data还是这种错误?

最佳答案

TCheckBox.Data包含boolean值,特别是复选框选中的状态。这就是为什么当您尝试从中读取EInvalidCast时出现Integer错误的原因。

您看似可以放入Integer数据的原因是因为TCheckBox.SetData只会忽略无效的数据类型并将Data设置为False

关于delphi - 用作TValue时TCheckBox.Data无效类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com