anchor.diff:      function GetValueFromMemo (const aName : string; const aTrimValue : boolean) : string;
       procedure CheckDate (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant);
       procedure CheckTime (const aOldStringValue : string; var aNewStringValue : string; var aActualValue : variant);
  +    procedure CheckDateTime (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);
  
positive.code:       CheckDate (OldValue, NewValue, curLine.ActualValue)
      else if curLine.Configuration.DataType = dtTime then
        CheckTime (OldValue, NewValue, curLine.ActualValue)
      else if curLine.Configuration.DataType = dtInteger then
        CheckInteger (OldValue, NewValue, curLine.ActualValue)
      else if (curLine.Configuration.DataType = dtFloat) then
  
negative.code:   end
    else
      aActualValue:= null;
  end;
  
  procedure TmEditingPanel.CheckDateTime(const aOldStringValue: string; var aNewStringValue: string; var aActualValue: variant);
  var
    vDate, vTime : TDateTime;
    i : integer;
    dateString, timeString : String;
  begin
    vDate := 0;
    if aNewStringValue <> '' then
    begin
      dateString := aNewStringValue;
      timeString := '';
  
      i := Pos(' ', aNewStringValue);
      if i > 0 then
      begin
        dateString:= Trim(Copy(aNewStringValue, 1, i));
        timeString:= Trim(Copy(aNewStringValue, i, 999));
      end;
  
      if TryToUnderstandDateString(dateString, vDate) then
      begin
        if timeString <> '' then
        begin
          if TryToUnderstandTimeString(timeString, vTime) then
          begin
            aNewStringValue:= DateToStr(vDate) + ' ' + TimeToStr(vTime);
            aActualValue := vDate + vTime;
          end
          else
          begin
            aNewStringValue := aOldStringValue;
            TmToast.ShowText(SErrorNotADateTime);
          end;
        end
        else
        begin
          aNewStringValue := DateToStr(vDate);
          aActualValue := vDate;
        end;
      end
      else
      begin
        aNewStringValue := aOldStringValue;
        TmToast.ShowText(SErrorNotADateTime);
      end;
    end
    else
      aActualValue := null;
  end;
  
  procedure TmEditingPanel.CheckInteger(const aOldStringValue: string; var aNewStringValue: string; var aActualValue: variant);
  