anchor.diff:    end else
       for I := Low(FTextPart) to High(FTextPart) do
         FTextPart[I] := '';
  -
  -  if FUserChanging > 0 then // this means that the change is caused by user interaction
  -    Change
  -  else
  -    FConfirmedDateTime := FDateTime;
   
     Invalidate;
   end;
  
positive.code: 
      if FDateTime < FMinDate then
        FDateTime := ComposeDateTime(FMinDate, FDateTime);
    end;
  
    if FKind in [dtkTime, dtkDateTime] then begin
  
negative.code: 
  procedure TDTCalendarForm.CloseCalendarForm(const AndSetTheDate: Boolean);
  begin
    if not FClosing then
      try
        SetClosingCalendarForm;
        Visible := False;
  
        if Assigned(DTPicker) and DTPicker.IsVisible then begin
  
          if AndSetTheDate then begin
            Inc(DTPicker.FUserChanging);
            try
              if DTPicker.DateIsNull then begin
                // we'll set the time to 0.0 (midnight):
                DTPicker.SetDateTime(Int(Cal.DateTime));
              end else if not EqualDateTime(Int(DTPicker.DateTime),
                                            Int(Cal.DateTime)) then begin
                // we'll change the date, but keep the time:
                DTPicker.SetDateTime(ComposeDateTime(Cal.DateTime, DTPicker.DateTime));
              end;
            finally
              Dec(DTPicker.FUserChanging);
            end;
          end;
  
          if Screen.ActiveCustomForm = Self then
            DTPicker.SetFocusIfPossible;
  
          DTPicker.DoCloseUp;
        end;
  
      finally
        Release;
      end;
  
  end;
  
  