anchor.diff:  
   uses
     Controls, Classes, StdCtrls, StrUtils, Contnrs, Variants,
  -  ExtCtrls, EditBtn, Menus,
  -  mFilter, mBaseClassesAsObjects;
  +  ExtCtrls, EditBtn, Menus, Spin,
  +  mFilter, mBaseClassesAsObjects, mMathUtility;
   
   type
     { TmFilterConditionPanel }
  
positive.code:     function IsEmpty : boolean; override;
      procedure Clear; override;
  
      property ForceUppercase : boolean read FForceUppercase write FForceUppercase;
    end;
  
    { TmComboFilterConditionPanel }
  
negative.code: end;
  
  function TmEditFilterConditionPanel.GetFilterValue: Variant;
  var
    tmp : Double;
  begin
    if FEdit.Text = '' then
      Result := null
    else
    if FValueType = efUppercaseString then
    begin
      Result := Uppercase(FEdit.Text)
    end
    else
    if FValueType = efInteger then
    begin
      if IsNumeric(FEdit.Text, false) then
        Result := StrToInt(FEdit.Text)
      else
        Result := null;
    end
    else
    if FValueType = efFloat then
    begin
      if IsNumeric(FEdit.Text, true) then
      begin
        if TryToConvertToDouble(FEdit.Text, tmp) then
          Result := tmp
        else
          Result := null;
      end
      else
        Result := null;
    end
    else
      Result := FEdit.Text;
  end;
  
  procedure TmEditFilterConditionPanel.SetFilterValue(aValue: Variant);
  