anchor.diff:    YMD: TYMD;
     HMSMs: THMSMs;
     D, T: TDateTime;
  -  Finished: Boolean;
  +  Finished, ForceChange: Boolean;
   
   begin
     if FTextEnabled then begin
  
positive.code:                 dtpMonth: YMD.Month := L;
                  dtpYear: YMD.Year := L;
                end;
                if not TryEncodeDate(YMD.Year, YMD.Month, YMD.Day, D) then begin
                  D := MinDate - 1;
                end;
                if (D < MinDate) or (D > MaxDate) then begin
                  if N = 4 then begin
                    UpdateDate;
                    Finished := True;
                  end else
                    S := Key;
                end;
              end else begin
                if (TTP = ttpHour) and (FTimeFormat = tf12) then begin
                  if not (L in [1..12]) then
                    S := Key;
  
                end else begin
  
  
negative.code:                 end;
                  if not TryEncodeTime(HMSMs.Hour, HMSMs.Minute, HMSMs.Second,
                                               HMSMs.MiliSec, T) then
                    S := Key
                  else
                    ForceChange := True;
  
                end;
              end;
  