anchor.diff:      for i := 0 to Self.Count - 1 do
         FIndex.Add(Uppercase(Self.VirtualFieldDefs[i].Name), Self.VirtualFieldDefs[i]);
     end;
  -  if FIndex.Find(Uppercase(aName), tmp) then
  -    Result := TmVirtualFieldDef(tmp)
  -  else
  -    Result := nil;
  +  Result := FIndex.Find(Uppercase(aName)) as TmVirtualFieldDef;
   end;
   
   procedure TmVirtualFieldDefs.ExtractFieldNames(aList: TStringList);
  
positive.code: 
  function TmVirtualFieldDefs.FindByName(const aName: string): TmVirtualFieldDef;
  var
    tmp : pointer;
    i : integer;
  begin
    if FIndex.Count = 0 then
  
negative.code: constructor TmVirtualFieldDefs.Create;
  begin
    inherited Create(TmVirtualFieldDef);
    FIndex := TmStringDictionary.Create(false);
  end;
  
  destructor TmVirtualFieldDefs.Destroy;
  