仅使用 Delphi 代码,TJSArray 如何在 TMS WEB Core 中工作?

问题描述 投票:0回答:1

我有以下代码,创建一个

TJSArray
,其中有两个位置(纬度和经度)坐标:

var
  jsArray: TJSArray;
begin
  jsArray := TJSArray.New;
  asm
    jsArray = [
      [-29.1252991, 26.1627625],
      [-29.1228004, 26.1614185]
    ];
  end;
end;

上面的代码工作得很好,但我在 Delphi 中声明

TJSArray
,然后使用 JavaScript 将数据放入其中。我更愿意只使用 Delphi,但我不知道
TJSArray
在 Delphi 中如何工作。

我可以使用

jsArray.push()
将单个项目推入其中,但我认为这不是我所需要的,因为我需要将多个项目推入其中。

如何将上面的代码变成纯Delphi代码?

arrays delphi multidimensional-array tms-web-core
1个回答
0
投票

据我所知,

TJSArray
的工作方式只是通过
push()
过程,并且它必须将某种
TJSValue
推入其中。

因此要在Delphi中执行上述代码,可以执行以下操作:

var
  jsArray: TJSArray;
  Coordinates: Array[0..1] of Double;
begin
  jsArray := TJSArray.New;

  Coordinates[0] := -29.1252991;
  Coordinates[1] := 6.1627625;
  jsArray.push(JS.toArray(Coordinates));

  Coordinates[0] := -29.1228004;
  Coordinates[1] := 26.1614185;
  jsArray.push(JS.toArray(Coordinates));
end;

但此时,代码更长、更丑,但为了将第二个数组推入

TJSArray
,您必须创建一个完整的第二个数组并使用
JS.toArray
方法将其转换为适合
push()
程序的类型。

这很糟糕,但我还没有找到更好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.