2017-08-06 44 views
1

在Delphi 10.1.2的VCL应用程序中,我使用TJvFormStorage组件来持久存储和恢复数据。尝试在Integer中存储TJvFormStorage时出现无效变量操作错误

所以在JvFormStorage1在设计时,我创建了一个储值举行的Integer值:

enter image description here

然后在运行时,我试图将Integer值赋给这个储值

JvFormStorage1.StoredValue['ToolbarLabelFontSize'].Value := 8; 

这会导致变体操作错误无效

但你可以从上面的截图中看到,储值值类型被明确定义为Integer型!

那么如何将Integer的值分配给这个StoredValue

+1

我不使用JEDI自己,所以我无法测试,但尝试以下。由于'JvFormStorage1.StoredValue ['ToolbarLabelFontSize']'是一个'variant',因此请删除您现在拥有的'.Value'。 –

回答

2

StoredValue[]属性提供access to the variant values directly,所以要设置这些值的一个值的正确的方法是:

JvFormStorage1.StoredValue['ToolbarLabelFontSize'] := 8; 
+0

我遵循你的建议,现在没有更多的错误信息。但不是** 8 **,它将** 71 **的值存储在XML文件中:' 71'!但是当RESTORING它再次得到** 8 **与整数(JvFormStorage1.StoredValue ['ToolbarLabelFontSize']))?? ** 8 **和** 71 **值如何转化为对方? – user1580348

+0

为了回答我以前的评论,似乎不是'Integer'值存储在XML文件中,而是'Variant'值存储在XML文件中。 – user1580348

相关问题