anchor.diff:      aList.Add(aVirtualFields.VirtualFieldDefs[i].Name);
   end;
   
  -function TmEditingFrame.GetValue(const aName: string): string;
  +function TmEditingFrame.GetValue(const aName: string): Variant;
   var
     curLine : TEditorLine;
  -begin
  +  tmp : string;
  +begin
  +  Result := Null;
  +
     curLine := FLinesByName.Find(aName) as TEditorLine;
  -  Result := FValueListEditor.Rows[curLine.Index + 1].Strings[1];
  +  tmp := Trim(FValueListEditor.Rows[curLine.Index + 1].Strings[1]);
  +  case curLine.EditorKind of
  +    ekInteger: Result := TNullableInteger.StringToVariant(tmp);
  +    ekFloat: Result := TNullableDouble.StringToVariant(tmp);
  +    ekDate: Result := TNullableDateTime.StringToVariant(tmp);
  +    ekLookupText: Result := TNullableString.StringToVariant(tmp);
  +    ekLookupFloat: Result := TNullableDouble.StringToVariant(tmp);
  +    ekLookupInteger: Result := TNullableInteger.StringToVariant(tmp);
  +    ekText: Result := TNullableString.StringToVariant(tmp);
  +  end;
   end;
   
   procedure TmEditingFrame.SetReadOnly(const aName: string; const aValue : boolean);
  
positive.code:       calendarFrm.Free;
      end;
    end
    else if curLine.EditorKind = ekLookup then
    begin
      tmpFieldsList := TStringList.Create;
      try
  
negative.code:   end;
  end;
  
  procedure TmEditingFrame.AddLine(const aName: string; const aCaption: string; const aDefaultValue: string; const aEditorKind : TmEditingFrameEditorKind; const aReadOnly : boolean = false);
  var
    tmp : TEditorLine;
  begin
  