有一段C++ builder代码,如何转成delphi?????????
void __fastcall TForm1::Button4Click(TObject *Sender)
{
//DFT  G=FgF
int n;
TColor bgr;
TColor Cb,Cg,Cr;
float xx_r,xx_i;complex<float> g[128][128];
complex<float> F[128][128];
complex<float> G1[128][128];
complex<float> G[128][128];float fA[128][128],fP[128][128];for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    xx_r=nData[i][k];
    complex<float> yy1(xx_r,0);
    g[i][k]=yy1;
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    xx_r=cos(2*PI*i*k/128);
    xx_i=-sin(2*PI*i*k/128);
    complex<float> yy2(xx_r,xx_i);    F[i][k]=yy2;
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<float> yy3(0,0);
    G1[i][k]=yy3;    for(int n=0;n<128;n++)
    {
      G1[i][k]=G1[i][k]+F[i][n]*g[n][k];
    }
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<float> yy4(0,0);
    G[i][k]=yy4;
    for(int m=0;m<128;m++)
    {
      G[i][k]=G[i][k]+G1[i][m]*F[m][k];
    }
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<double> d=G[i][k];
    fA[i][k]=sqrt(pow(d.real(),2)+pow(d.imag(),2));
    fA[i][k]=log(fA[i][k]);
    if(fA[i][k]<0) fA[i][k]=0;
  }
float fMax=0;
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    if(fMax<fA[i][k]) fMax=fA[i][k];
  }
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    fA[i][k]=255*fA[i][k]/fMax;
  }short s[128][128];
for (int i = 0; i < 64; i++)
  for (int k = 0; k < 64; k++)
  {
    s[i+64][k+64]=(short)(fA[i][k]);
    s[i][k]=(short)(fA[i+64][k+64]);
  }for (int i = 0; i < 64; i++)
  for (int k = 64; k < 128; k++)
  {
    s[i][k]=(short)(fA[i+64][k-64]);
    s[i+64][k-64]=(short)(fA[i][k]);
  }short nC;
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    nC=s[i][k];    Cb=nC;
    Cg=nC << 8;
    Cr=nC << 16;
    bgr=Cb | Cg |Cr;
    Image5->Canvas->Pixels[i][k] = bgr;
  }void __fastcall TForm1::Button4Click(TObject *Sender)
{
//DFT  G=FgF
int n;
TColor bgr;
TColor Cb,Cg,Cr;
float xx_r,xx_i;complex<float> g[128][128];
complex<float> F[128][128];
complex<float> G1[128][128];
complex<float> G[128][128];float fA[128][128],fP[128][128];for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    xx_r=nData[i][k];
    complex<float> yy1(xx_r,0);
    g[i][k]=yy1;
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    xx_r=cos(2*PI*i*k/128);
    xx_i=-sin(2*PI*i*k/128);
    complex<float> yy2(xx_r,xx_i);    F[i][k]=yy2;
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<float> yy3(0,0);
    G1[i][k]=yy3;    for(int n=0;n<128;n++)
    {
      G1[i][k]=G1[i][k]+F[i][n]*g[n][k];
    }
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<float> yy4(0,0);
    G[i][k]=yy4;
    for(int m=0;m<128;m++)
    {
      G[i][k]=G[i][k]+G1[i][m]*F[m][k];
    }
  }for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    complex<double> d=G[i][k];
    fA[i][k]=sqrt(pow(d.real(),2)+pow(d.imag(),2));
    fA[i][k]=log(fA[i][k]);
    if(fA[i][k]<0) fA[i][k]=0;
  }
float fMax=0;
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    if(fMax<fA[i][k]) fMax=fA[i][k];
  }
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    fA[i][k]=255*fA[i][k]/fMax;
  }short s[128][128];
for (int i = 0; i < 64; i++)
  for (int k = 0; k < 64; k++)
  {
    s[i+64][k+64]=(short)(fA[i][k]);
    s[i][k]=(short)(fA[i+64][k+64]);
  }for (int i = 0; i < 64; i++)
  for (int k = 64; k < 128; k++)
  {
    s[i][k]=(short)(fA[i+64][k-64]);
    s[i+64][k-64]=(short)(fA[i][k]);
  }short nC;
for (int i = 0; i < 128; i++)
  for (int k = 0; k < 128; k++)
  {
    nC=s[i][k];    Cb=nC;
    Cg=nC << 8;
    Cr=nC << 16;
    bgr=Cb | Cg |Cr;
    Image5->Canvas->Pixels[i][k] = bgr;
  }