anchor.diff:              aNewDisplayValue:= lookupFrm.SelectedDisplayLabel;
               aNewActualValue:= lookupFrm.SelectedValue;
               if Assigned(FOnGetValueFromLookupKeyValueEvent) then
  -              FOnGetValueFromLookupKeyValueEvent(curLine.Name, aNewActualValue, aNewDisplayValue);
  +              FOnGetValueFromLookupKeyValueEvent(Self, curLine.Name, aNewActualValue, aNewDisplayValue);
   
               FValueListEditor.Cells[aCol, aRow] := aNewDisplayValue;
               curLine.ActualValue:= aNewActualValue;
  
positive.code:   FKeyFieldName := '';
    FDisplayLabelFieldName := '';
    FFields := TStringList.Create;
  end;
  
  destructor TmEditorLineDataProvider.Destroy;
  begin
    FFields.Free;
    FVirtualFieldDefs.Free;
    inherited Destroy;
  end;
  
  
negative.code:     FKeyFieldName: string;
      FDisplayLabelFieldName: string;
      FFields : TStringList;
      FBooleanProvider : TBooleanDataProvider;
      function GetUseBooleanProvider: boolean;
      procedure SetUseBooleanProvider(AValue: boolean);
    private
      class procedure ExtractFields(aVirtualFields: TmVirtualFieldDefs; aList: TStringList);
    public
      constructor Create;
      destructor Destroy; override;
  