anchor.diff:      FFieldName : string;
       FFilterOperator : TmFilterOperator;
       FValue : Variant;
  +
  +    FValuesAsStrings : TStringList;
  +    FValuesDictionary: TmStringDictionary;
  +    procedure SetValue(AValue: Variant);
     public
       constructor Create;
       destructor Destroy; override;
   
  -    function GetFormattedValue : Variant;
  +    function Evaluate (aActualValue : Variant) : boolean;
  +    procedure CopyFrom (aSource : TmFilter);
  +
  +    function GetFormattedValueForSQL : Variant;
   
       property FieldName : string read FFieldName write FFieldName;
       property FilterOperator : TmFilterOperator read FFilterOperator write FFilterOperator;
  -    property Value : Variant read FValue write FValue;
  +    property Value : Variant read FValue write SetValue;
     end;
   
   
  
positive.code:   Result := FList.Items[aIndex] as TmFilter;
  end;
  
  { TmFilter }
  
  constructor TmFilter.Create;
  begin
    FFilterOperator:= foUnknown;
  end;
  
  destructor TmFilter.Destroy;
  
negative.code: interface
  
  uses
    Contnrs, Classes, Variants, SysUtils,
    mMaps, mUtility;
  
  type
    TmFilterOperator = (foUnknown, foEq, foGtOrEq, foLtOrEq, foLike, foNotEq, foStartWith, foEndWith, foIn);
  
    { TmFilter }
  
  