Another Record with Procedure in SmartMS

Top 

Example code : Another Record with Procedure in SmartMS

type

  TSinglePoint = record

    x: Integer;

    y: Integer;

  end;

 

   TSinglePointArray = array of TSinglePoint;

 

   TTest = record

     Field : String;

     procedure Update;

    end;

 

procedure TTest.Update;

begin

    Field := 'Good morning '+ Field;

end;

 

procedure DoStuff(const t : TTest);

begin

    WriteLn(t.Field);

    t.Update;

    WriteLn(t.Field);

end;

 

procedure TForm1.W3Button11Click(Sender: TObject);

var t : TTest;

 

begin

  t.Field := 'warleyalex';

  DoStuff(t);

end;

warleyalex

Good morning warleyalex 

 

 

JS output:

function W3Button11Click(Self, Sender$7) {

      var t$2 = {Field:""};

      t$2.Field = "warleyalex";

      DoStuff(t$2);

   }

 

function DoStuff(t$3) {

   WriteLn(t$3.Field);

   TTest$Update$3(t$3);

   WriteLn(t$3.Field);

};

 

 

/// TTest = record

function Copy$TTest(s,d) {

   d.Field=s.Field;

   return d;

}

function Clone$TTest($) {

   return {

      Field:$.Field

   }

}

/// procedure TTest.Update(var Self: TTest)

function TTest$Update$3(Self$73) {

   Self$73.Field = "Good morning "+Self$73.Field;

}

/// TSinglePoint = record

function Copy$TSinglePoint(s,d) {

   d.x$1=s.x$1;

   d.y=s.y;

   return d;

}

function Clone$TSinglePoint($) {

   return {

      x$1:$.x$1,

      y:$.y

   }

}