anchor.diff:    aKeyFieldName := '';
     aDisplayLabelFieldName := '';
     if Assigned(FOnInitProviderForLookupEvent) then
  -    FOnInitProviderForLookupEvent(aName, aDatasetProvider, aFieldsList, aKeyFieldName, aDisplayLabelFieldName)
  +    FOnInitProviderForLookupEvent(Self, aName, aDatasetProvider, aFieldsList, aKeyFieldName, aDisplayLabelFieldName)
     else
     begin
       curLine := FLinesByName.Find(aName) as TEditorLine;
  
positive.code: 
    TmEditingPanelEditorKind = (ekInteger, ekFloat, ekDate, ekTime, ekLookupText, ekLookupInteger, ekLookupFloat, ekText, ekUppercaseText, ekContainerNumber, ekMRNNumber);
  
    TmOnEditValueEvent = procedure (const aName : string; const aNewDisplayValue: string; const aNewActualValue : variant) of object;
    TmOnValidateValueEvent = procedure (const aName : string; const aOldDisplayValue : String; var aNewDisplayValue : String; const aOldActualValue: Variant; var aNewActualValue: variant) of object;
    TmOnInitProviderForLookupEvent = procedure (const aName : string; aDatasetProvider : TReadOnlyVirtualDatasetProvider; aFieldsList : TStringList; out aKeyFieldName, aDisplayLabelFieldName: string) of object;
    TmOnGetValueFromLookupKeyValueEvent = procedure (const aName : string; var aLookupValue: variant; var aDisplayValue: string) of object;
  
    { TmEditorLineDataProvider }
  
  
negative.code:     FCommitted : boolean;
    protected
      procedure ExtractFields (aVirtualFields : TmVirtualFieldDefs; aList : TStringList);
      procedure SetReadOnly (const aName : string; const aValue : boolean); overload;
      procedure SetReadOnly (const aValue : boolean); overload;
      // override these or use events (don't mix overrides and events!):
  