Delphi 如何在DWScipt中初始化对象?

Delphi 如何在DWScipt中初始化对象?,delphi,dwscript,smart-mobile-studio,Delphi,Dwscript,Smart Mobile Studio,请问这个JS代码在DWScript中的等价物是什么? 我使用dwscriptcodegen // JavaScript: DoIt({name:"Fred", size:{width:3,height:2}}); 我尝试了匿名录制,但似乎不起作用: var obj: variant; obj := record Name = 'Fred'; Size: variant = record Width = 3;

请问这个JS代码在DWScript中的等价物是什么? 我使用dwscriptcodegen

// JavaScript:
DoIt({name:"Fred", size:{width:3,height:2}});
我尝试了匿名录制,但似乎不起作用:

var obj: variant;
    obj := record
      Name = 'Fred';
      Size: variant = record
         Width = 3;
        Height = 2;
      end;
    end;
使用DWScript Codegen生成的JS代码为:

var obj = undefined,
      /// anonymous TRecordSymbol
      function Copy$a$460(s,d) {
         return d;
      }
      function Clone$a$460($) {
         return {

         }
      }
      function Pub$a$460($) {
         return {
            "Name":$.Name$8
            ,"Size":$.Size$5
         }
      }
      /// anonymous TRecordSymbol
      function Copy$a$461(s,d) {
         return d;
      }
      function Clone$a$461($) {
         return {

         }
      }
      function Pub$a$461($) {
         return {
            "Width":$.Width$4
            ,"Height":$.Height$2
         }
      }
      obj = {Name$8:"Fred",Size$5:3};
      alert(JSON.stringify(obj));

我会给你举个例子,帮助你回答自己的问题

首先,创建一个新类型,大致如下:

type
  TDimensions = record
  published
    Width: integer;
    Height: integer;
  end;
接下来,你需要以某种方式使用它。假设您单击一个按钮,从几个输入字段收集了一组数据,然后对输入进行清理并发送。首先,请使用以下内容:

procedure TForm1.ButtonClickHandler(Sender: TObject);
var
  dimensions: TDimensions;
  payload: Variant;
  serialized: String;
begin
  dimensions.width := StrToInt(self.W3EditBox2.Text);
  dimensions.height := StrToInt(self.W3EditBox3.Text);

  payload := TVariant.CreateObject;
  payload.name := self.W3EditBox1.Text;
  payload.size := dimensions;

  asm
    @serialized = JSON.stringify(@payload);
  end;

  writeln(serialized);
end;

我会给你举个例子,帮助你回答自己的问题

首先,创建一个新类型,大致如下:

type
  TDimensions = record
  published
    Width: integer;
    Height: integer;
  end;
接下来,你需要以某种方式使用它。假设您单击一个按钮,从几个输入字段收集了一组数据,然后对输入进行清理并发送。首先,请使用以下内容:

procedure TForm1.ButtonClickHandler(Sender: TObject);
var
  dimensions: TDimensions;
  payload: Variant;
  serialized: String;
begin
  dimensions.width := StrToInt(self.W3EditBox2.Text);
  dimensions.height := StrToInt(self.W3EditBox3.Text);

  payload := TVariant.CreateObject;
  payload.name := self.W3EditBox1.Text;
  payload.size := dimensions;

  asm
    @serialized = JSON.stringify(@payload);
  end;

  writeln(serialized);
end;