【发布时间】:2021-12-10 15:00:30
【问题描述】:
我在Delphi上重建旧项目,在properties中将对象的位置作为向量传递,然后写入到对应的PosX属性中,以此类推,这就是莫名其妙的错误“Array type required “出现。我在网上没有发现这样的错误。 需要什么类型,在哪里需要?
private
{ Private Properties }
FPosition : TVector;
FDirection, FUp : TVector;
public
property Position : TVector read FPosition write FPosition;
property PosX : Single read FPosition[0] write FPosition[0];
property PosY : Single read FPosition[1] write FPosition[1];
property PosZ : Single read FPosition[2] write FPosition[2];
错误附加在向量每个元素的“]”字符上
更新:
版本 Delphi 10.4。 我在以“property PosX”开头的每一行有 2 个错误,总共有 6 个错误 Image
我找到了类型是如何声明的:
TVector = record
case Integer of
0: (V: array[0..3]} of Single);
1: (X,Y,Z,W : Single);
end;
【问题讨论】:
-
你能说明
TVector是如何声明的吗?可能相关:docwiki.embarcadero.com/RADStudio/Sydney/en/… -
TVector 归 GLScene 所有。 TVector = array[0..3] of single;但是,如果我将 FPosition 类型替换为“数组 [0..3] of single”,那么我与 Position 类型不匹配
-
恐怕解决方法没那么简单,因为2005年的程序和GLScene引擎本身都发生了一点变化,而且没有那么流行。为了便于理解,我找到了类型是如何声明的。
-
不知道你的搜索引擎出了什么问题,但我给了我这个作为我搜索的第一个命中docwiki.embarcadero.com/RADStudio/en/…