anchor.diff:    Result := FLD_POSITION;
   end;
   
  +class function TmUprightDatum.GetDeltaFieldName(const aIndex: integer): String;
  +begin
  +  Result := FLD_DELTA + IntToStr(aIndex + 1);
  +end;
  +
  +class function TmUprightDatum.GetAttributeFieldName(const aIndex: integer): String;
  +begin
  +  Result := FLD_ATTRIBUTE + IntToStr(aIndex + 1);
  +end;
  +
  +class function TmUprightDatum.GetUprightFieldName(const aIndex: integer): string;
  +begin
  +  Result := FLD_UPRIGHT + IntToStr(aIndex + 1);
  +end;
  +
  +class function TmUprightDatum.GetHighLightFieldName(const aIndex: integer): string;
  +begin
  +  Result := FLD_HIGHLIGHT + IntToStr(aIndex + 1);
  +end;
  +
  +class function TmUprightDatum.GetLimitFieldName(const aIndex: integer): string;
  +begin
  +  Result := FLD_LIMIT + IntToStr(aIndex + 1);
  +end;
  +
  +class function TmUprightDatum.GetRemainingFieldName(const aIndex: integer): string;
  +begin
  +  Result := FLD_REMAINING + IntToStr(aIndex + 1);
  +end;
  +
   procedure TmUprightDatum.SetUpright(const aIndex: byte; const aValue: double);
   begin
     FUprights[aIndex] := aValue;
  
positive.code:   FDataList := TFPList.Create;
    FEventsList := TObjectList.Create(true);
    FGarbage := TObjectList.Create(true);
    FLimitsList := TFPList.Create;
  end;
  
  destructor TmUpright.Destroy;
  
negative.code: 
  const
    MAX_NUM_OF_VALUES = 10;
    MAX_NUM_OF_ATTRIBUTES = 10;
  
  type
  
  