Enumerations in SmartMS

Top 

Example code : Enumerations in SmartMS ex2

type

 TNumber = (Ace, One, Two, Three, Four, Five, Siz, Seven, Eight,

            Nine, Ten, Jack, Queen, King);

 TMyEnumeration  =  enum(First, Second,Third,Tenth=10,Eleventh);

 TMyFlags  =  flags(Alpha,Beta,Gamma);

 TMyExplicitEnum  =  (eeOne=1,eeTwo=3,eeFive=5);

 

 

procedure TForm1.W3Button12Click(Sender: TObject);

var

  CourtCards: Set of TNumber;      // Court cards

  CardNumbers : array[1..4of TNumber;

  i : Integer;

 

begin

 WriteLn(TMyEnumeration.First);  // index 0

 WriteLn(TMyEnumeration(1));     // index 1

 WriteLn(TMyFlags.Beta);         // index 2

 WriteLn(TMyExplicitEnum.eeTwo); // index 3

 

  // Set up the card numbers only to allow picture cards

  CourtCards := [Ace, Jack, Queen, King];

 

  // Define some cards

  CardNumbers[1] := Ace;

  CardNumbers[2] := Four;

  CardNumbers[3] := Jack;

  CardNumbers[4] := Seven;

 

  // Show the picture cards that we have

  for i := 1 to 4 do

    if CardNumbers[i] in CourtCards

    then ShowMessage('Card '+IntToStr(i)+' is a court card');

end;

0

1

2

3

 

Card1 is a court card // Ace card

Card3 is a court card // Jack card

-----------------------------------

 

JS output:

  var CourtCards = [0];

  var CardNumbers = [0,0,0,0];

  var i$9 = 0;

  WriteLn(0);

  WriteLn(1);

  WriteLn(2);

  WriteLn(3);

  CourtCards = [14337].slice(0);

  CardNumbers[(1)-1] = 0;

  CardNumbers[(2)-1] = 4;

  CardNumbers[(3)-1] = 11;

  CardNumbers[(4)-1] = 7;

  for(i$9 = 1;i$9<=4;i$9++) {

    if ($SetIn(CourtCards,CardNumbers[$Idx(i$9,1,4,"")],0,14)) {

      alert("Card "+i$9.toString()+" is a court card");

    }

  }

 

// Enumerations 

var TNumber = [ "Ace""One""Two""Three""Four""Five""Siz""Seven""Eight""Nine""Ten""Jack""Queen""King" ];

var TMyEnumeration = { 0:"First"1:"Second"2:"Third"10:"Tenth"11:"Eleventh" };

var TMyFlags = { 1:"Alpha"2:"Beta"4:"Gamma" };

var TMyExplicitEnum = { 1:"eeOne"3:"eeTwo"5:"eeFive" };