anchor.diff:    tmpMemo.WantReturns:= true;
     tmpMemo.Text:= aDefaultValue;
   
  -  FMemos.Add(tmpMemo);
  -  FMemosByName.Add(aName, tmpMemo);
  +  tmpEditorMemo := TEditorMemo.Create;
  +  tmpEditorMemo.Name:= aName;
  +  tmpEditorMemo.Memo := tmpMemo;
  +  tmpEditorMemo.ChangedValueDestination := aChangedValueDestination;
  +
  +  FMemos.Add(tmpEditorMemo);
  +  FMemosByName.Add(aName, tmpEditorMemo);
   
     FRootPanel.PanelCollection.Items[FRootPanel.PanelCollection.Count - 1].Position:= 1;
     position := 1 - aMemoHeightPercent;
  
positive.code: function TmEditingPanel.GetValue(const aName: string): Variant;
  var
    curLine : TEditorLine;
  //  tmp : string;
  begin
    Result := Null;
  
    curLine := FLinesByName.Find(aName) as TEditorLine;
    Result := curLine.ActualValue;
  
    (*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);
      ekUppercaseText: Result := TNullableString.StringToVariant(UpperCase(tmp));
      ekContainerNumber: Result := TNullableString.StringToVariant(UpperCase(tmp));
    end;*)
  end;
  
  function TmEditingPanel.GetEditorKind(const aName: string): TmEditingPanelEditorKind;
  
negative.code:   for i := 0 to FLines.Count - 1 do
      (FLines.Items[i] as TEditorLine).ReadOnly:= aValue;
    for i := 0 to FMemos.Count - 1 do
      (FMemos.Items[i] as TEditorMemo).Memo.ReadOnly:= aValue;
    for i := 0 to FValueListEditor.Strings.Count -1 do
    begin
      tmp := (FValueListEditor.ItemProps[i]);
  