anchor.diff:  
     TmLookupFilterCondizionOnFillVirtualFields = procedure (aFieldDefs : TmVirtualFieldDefs) of object;
   
  -  { TmLookupFilterConditionPanel }
  -
  -  TmLookupFilterConditionPanel = class(TmFilterConditionPanel)
  -  private
  +
  +
  +  TmBaseLookupFilterConditionPanel = class(TmFilterConditionPanel)
  +  protected
       FCurrentValue : variant;
       FLabel : TLabel;
       FEdit : TEditButton;
       FValueType : TmEditFilterValueType;
  -    FDataProvider: TmDataProvider;
       FKeyFieldName : string;
  -    //FValueFieldName : string;
       FLookupFieldNames : TStringList;
       FDisplayLabelFieldNames : TStringList;
       FOnFillVirtualFieldDefs : TmLookupFilterCondizionOnFillVirtualFields;
   
       procedure OnEditValueChanged (Sender : TObject);
  -    procedure OnShowLookup (Sender: TObject);
  +    procedure OnShowLookup (Sender: TObject); virtual; abstract;
     public
       constructor Create(TheOwner: TComponent); override;
       destructor Destroy; override;
  
positive.code:     aFilter.Value := FCurrentValue;
  end;
  
  procedure TmLookupFilterConditionPanel.ImportFromFilter(const aFilter: TmFilter);
  begin
    Self.Clear;
    inherited ImportFromFilter(aFilter);
  
negative.code:   FEdit.Text := aFilter.DisplayValue;
  end;
  
  procedure TmBaseLookupFilterConditionPanel.SetFilterValue(const aValue : Variant; const aDescription: String);
  begin
    if VarIsNull(aValue) then
      Self.Clear
  