anchor.diff:    mUtility, mFilterOperators, StrHashMap;
   
   type
  -  TmFilterDataType = (fdtString, fdtDate, fdtDateTime, fdtInteger, fdtFloat);
  +  TmFilterDataType = (fdtString, fdtDate, fdtDateTime, fdtTime, fdtInteger, fdtFloat);
   
     { TmFilter }
   
  
positive.code:       FMinDoubleValue:= round(tmpDouble);
        tmpDouble := VarAsType(FCurrentFilter.Value[stop], vardate);
        FMaxDoubleValue:= round(tmpDouble);
      end else if aFilter.DataType = fdtDateTime then
      begin
        FMinDoubleValue:= VarAsType(FCurrentFilter.Value[start], vardate);
        FMaxDoubleValue:= VarAsType(FCurrentFilter.Value[stop], vardate);
  
negative.code:         if FCurrentFilter.DataType = fdtString then
          begin
            Result := (FMinStrValue <= aActualValue) and (aActualValue <= FMaxStrValue);
          end else if (FCurrentFilter.DataType = fdtDate) or (FCurrentFilter.DataType = fdtDateTime) or (FCurrentFilter.DataType = fdtFloat) or (FCurrentFilter.DataType =fdtTime)  then
          begin
            Result := (FMinDoubleValue <= aActualValue) and (aActualValue <= FMaxDoubleValue);
          end else if FCurrentFilter.DataType = fdtInteger then
  