我目前有这个,它吸吮:
type TpointArray = array [0..3] of Tpoint; class function rotationTable.offsets(pType,rotState,dir: integer): TpointArray; begin Result[0] := point(1,1); Result[1] := point(1,2); Result[2] := point(1,1); Result[3] := point(1,1); end;
而是我想做这样的事情:
class function rotationTable.offsets(pType,dir: integer): TpointArray; begin Result := [Point(1,1),Point(1,2),1)]; end;
但是,在编译时,它抱怨说[1,2,3,4]语法只适用于整数。
有没有办法实例化/初始化一个类似于我想要的方式的Tpoint数组?
解决方法
记录数组可以在const表达式中进行初始化:
const Points : TPointArray = ((X: 1; Y: 1),(X:1; Y:2),(X:1; Y:1),(X:1; Y:1)); class function rotationTable.offsets(pType,dir: integer): TpointArray; begin Result := Points; end;
在XE7中,可以填充动态的记录数组,如下所示:
function GetPointArray: TArray<TPoint>; begin Result := [Point(1,1)]; end;