anchor.diff:    SErrorNotADate = 'Not a date.';
     SErrorNotANumber = 'Not a number.';
     SErrorNotATime = 'Not a time.';
  +  SErrorNotAMonth = 'Not a month.';
  +  SErrorNotAYear = 'Not a year.';
     SErrorYearInThePast = 'Year in the past.';
     SErrorYearInTheFuture = 'Year in the future.';
     SErrorYearTooFaraway = 'Year too faraway.';
  
positive.code:     else
      begin
        tmp := StrToInt(aNewStringValue);
        if (aDataType = dtCurrentYearOrInTheFuture) and (tmp < YearOf(Date)) then
        begin
          aNewStringValue:= aOldStringValue;
          TmToast.ShowText(SErrorYearInThePast);
  
negative.code:     procedure CheckTime (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant);
      procedure CheckInteger (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant);
      procedure CheckYear(const aOldStringValue : string; const aDataType: TmEditorLineDataType; const aDistanceInMonths : integer; var aNewStringValue : string; var aActualValue : variant);
      procedure CheckMonth(const aOldStringValue : string; const aDataType: TmEditorLineDataType; var aNewStringValue : string; var aActualValue : variant);
      procedure CheckFloat (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant; const aLineConfiguration : TmEditorLineConfiguration);
    private
      procedure SetMultiEditMode(AValue: boolean);
  