Delphi E2016需要阵列类型。使用PSingle变量

Delphi E2016需要阵列类型。使用PSingle变量,delphi,pointers,Delphi,Pointers,首先,对不起我的英语,我是西班牙人 我花了很多时间试图将这部分代码从delphi vcl翻译成fmx。 代码如下: procedure process(Process_samples: Longint); var offs: longint; pBuffer: PSingle; sum: double; x: longint; begin pBuffer := buffer.ptrBegin; //-->>buffer.ptrbegin is a psingle

首先,对不起我的英语,我是西班牙人

我花了很多时间试图将这部分代码从delphi vcl翻译成fmx。 代码如下:

procedure process(Process_samples: Longint);
var
  offs: longint;
  pBuffer: PSingle;
  sum: double;
  x: longint;
begin
  pBuffer := buffer.ptrBegin;  //-->>buffer.ptrbegin is a psingle 
  for offs := windowStart to windowLen do
  begin
    sum := 0;
    for x := 0 to process_samples - 1 do
    begin
      sum := sum + pBuffer[x] * pBuffer[x + offs];    
    end;

  end;
end;
我收到这个错误:

[dcc错误]unit1.pas:需要E2016阵列类型。

我需要从位置x上的psingle读取一个值,我不知道怎么做

有人能帮我吗

我是Firemonkey的新手,我想将我的应用程序从DelphiVCL转换为fmx。

此代码依赖,因此请确保它在您的代码中实际打开:

{$POINTERMATH ON}
有关使用编译器条件和指令的更多详细信息,请参阅Embarcadero的文档:

此代码依赖于,因此请确保在您的代码中实际启用了它:

{$POINTERMATH ON}
有关使用编译器条件和指令的更多详细信息,请参阅Embarcadero的文档:


您发布的代码在VCL和FMX之间没有区别;Delphi版本之间可能有所不同,但没有GUI内容,因此VCL和FMX是不相关的。您在原始版本和新版本中使用的具体Delphi版本是什么?缓冲区的具体定义是什么?您发布的代码在VCL和FMX之间没有区别;Delphi版本之间可能有所不同,但没有GUI内容,因此VCL和FMX是不相关的。对于原始版本和新版本,您使用什么特定的Delphi版本?缓冲区的具体定义是什么?