Delphi 10转换TValueBuffer

时间:2015-12-18 14:41:50

标签: delphi delphi-7 delphi-10-seattle

我在Delphi 7中有这样的代码:

var    
  mValueBuffer : TValueBuffer;
begin
  Double(MValueBuffer) := Date;
end;

当我在Delphi 10 Seattle中编译它时,它失败并出现无效的类型转换错误。我使用的是Data.DB单元。

1 个答案:

答案 0 :(得分:3)

从您的评论中提取信息并编辑问题以使用它们,我们现在可以理解这个问题。请注意评论中给出的建议,以便将来提出问题。

类型TValueBufferData.DB中声明为动态字节数组。因此,类型转换无效。您不能希望将动态数组(实际上是指针)转换为双精度浮点值。这些类型的大小不同。因此编译错误。即使类型大小相同,演员也毫无意义。

为什么在Delphi 7中编译。好吧,Delphi 7标准库没有名为TValueBuffer的类型。因此,我们只能假定您的代码或您使用的库中定义了TValueBuffer。据推测,您对Data.DB单位的使用会隐藏打算使用的TValueBuffer类型。找到那种类型,你就可以得到问题的答案。